FB Graph订阅IOS发送access_token

时间:2015-02-07 12:34:16

标签: ios facebook facebook-graph-api

Facebook Graph SDK(以及它的iOS实现)有一些东西真的让我的生活变得悲惨。而且我似乎独自一人,因为我似乎无法在网上找到任何与我类似的问题/缺乏理解的人。

没有进一步的麻烦:

我的iOS应用程序中有这个代码,应该将我的应用程序订阅到用户更新:

-(void)subscribeToFacebook{
    (FBSession.activeSession.isOpen) ? NSLog(@"is open") : NSLog(@"is closed");

    NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:
                            @"page", @"object",
                            @"http://www.example.com/fbcallback.php", @"callback_url",
                            @"about, picture", @"fields",
                            @"ItsMeAlright", @"verify_token",
                            nil
                            ];
    /* make the API call */
    [FBRequestConnection startWithGraphPath:@"/app/subscriptions"
                                 parameters:params
                                 HTTPMethod:@"POST"
                          completionHandler:^(
                                              FBRequestConnection *connection,
                                              id result,
                                              NSError *error
                                              ) {
                              /* handle the result */
                               NSLog(@"error= %@",error);
                          }];
    }

当我运行此代码时,会记录一个错误,说明:

  

"(#15)必须使用app access_token调用此方法。"

现在,我(想)我知道如何获得access_token

 NSString *fbAccessToken = [[[FBSession activeSession] accessTokenData] accessToken];

但我不知道何时何地将其发送到Facebook。

我试图将它附加到@" / app / subscriptions"像这样的部分

NSString *urlString = [NSString
                           stringWithFormat:@"/app/subscriptions?access_token=%@",
                           [fbAccessToken stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

但这没有用。

非常欢迎您的意见!

1 个答案:

答案 0 :(得分:0)

执行此操作的方法是使用应用程序令牌创建FBSession。因为当前的会话并不是你想要的。

但是,安全方面,你根本不应该这样做。将应用程序令牌嵌入到生产应用程序中是非常不安全的。我相信为您生成的iOS示例不正确。

您应该通过服务器调用(例如PHP)发送任何需要应用程序令牌的请求