2

实际上我需要在我的应用程序中添加应用程序请求概念。为此,我使用了以下代码:

     [FBWebDialogs
     presentRequestsDialogModallyWithSession:[FBSession activeSession]
     message:@"Try this app"
     title:nil
     parameters:params
     handler:^(FBWebDialogResult result, NSURL *resultURL, NSError *error) {
         if (error) {
             NSLog(@"Error sending request.");
         } else {
             if (result == FBWebDialogResultDialogNotCompleted) {
                 NSLog(@"User canceled request.");
             } else {
                 NSDictionary *urlParams = [self parseURLParams:[resultURL query]];
                 if (![urlParams valueForKey:@"request"]) {
                     NSLog(@"User canceled request.");
                 } else {
                     NSString *requestID = [urlParams valueForKey:@"request"];
                     NSLog(@"Request ID: %@", requestID);
                 }
             }
         }
     }];


  - (NSDictionary*)parseURLParams:(NSString *)query 
    {
 NSArray *pairs = [query componentsSeparatedByString:@"&"];
 NSMutableDictionary *params = [[NSMutableDictionary alloc] init];
  for (NSString *pair in pairs) {
    NSArray *kv = [pair componentsSeparatedByString:@"="];
    NSString *val =
    [kv[1] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    params[kv[0]] = val;
  }
  return params;

 }

我还查看了这个 facebook 文档App requests

但是当我向我的任何朋友发送请求时,我得到了请求 ID,但该通知没有出现在我朋友的 Facebook 帐户上。我对上面的代码做错了什么?

4

3 回答 3

1

你可以按照你的要求去做,但这有点麻烦。从我所见,您的请求代码没有任何问题。

但是您可能没有 - 并且需要在您的应用程序的设置页面中添加一个“Facebook 上的应用程序”。

这是您添加“iOS”作为平台的地方。您还需要添加“Facebook 上的应用程序”作为平台,为此您需要两件事。网站 url(您控制的任何网站)和受 https 保护的 url。

一旦你有了这个并将其放入 Facebook 设置中的“Canvas URL”和“Secure Canvas URL”,应用程序发送的通知将显示在 tergeted 用户的主屏幕上。

于 2014-03-21T14:05:08.487 回答
1

请求不会显示在通知中。只有他们被发送到的用户才能私下查看。将显示在“请求”页面上或作为通知用户。

于 2013-09-20T07:59:18.760 回答
0

您在 facebook 开发人员中设置启用沙盒模式

访问 https://www.facebook.com/login.php?next=https%3A%2F%2Fdevelopers.facebook.com%2Fapps

在您的 Facebook 中转到游戏->应用程序->应用程序请求并查看应用程序通知

于 2014-01-28T05:14:39.047 回答