FB Graph订阅iOS

时间:2015-02-07 09:25:59

标签: ios facebook facebook-graph-api

我和图:地狱中的组合。 请考虑以下事项:

为了建立FB订阅,我有这个方法:

-(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-id}/subscriptions"
                                 parameters:params
                                 HTTPMethod:@"POST"
                          completionHandler:^(
                                              FBRequestConnection *connection,
                                              id result,
                                              NSError *error
                                              ) {
                              /* handle the result */
                               NSLog(@"error= %@",error);
                          }];
    }

我几乎从FB手册中复制过。

http://www.example.com/fbcallback.php我有这段代码:

<?php
$hub_mode = $_GET['hub_mode'];
$hub_challenge = $_GET['hub_challenge'];
$hub_verify_token = $_GET['hub_verify_token'];
if ($hub_verify_token =='ItsMeAlright')
{
    echo $hub_challenge;
}
//and here i am planning to add some logic.
?>

不幸的是,当iOS运行我的方法时,它会记录以下错误:

  

错误Domain = com.facebook.sdk Code = 5&#34;操作不能   完成。 (com.facebook.sdk错误5。)&#34;的UserInfo = 0x7e921970   {com.facebook.sdk:ErrorInnerErrorKey =错误域= NSURLErrorDomain   代码= -1002&#34;不支持的网址&#34;的UserInfo = 0x7d7a21a0   {NSUnderlyingError = 0x7d4388c0&#34;不支持的网址&#34;,   NSLocalizedDescription =不支持的网址},   com.facebook.sdk:HTTPStatusCode = 200,   com.facebook.sdk:ErrorSessionKey =,   expirationDate:2015-04-07 09:12:48 +0000,refreshDate:2015-02-07   08:57:41 +0000,attemptsRefreshDate:0000-12-30 00:00:00 +0000,   权限:(       &#34; public_profile&#34 ;,       电子邮件,       &#34; user_friends&#34; )&GT;}

那是什么一回事?该错误实际上表明这是一个iOS的东西。我很困惑。希望你不是。

1 个答案:

答案 0 :(得分:1)

所有官方Facebook文档都使用{user-id}{app-id}作为占位符。

如果您不想提供应用ID,请让API确定它使用app。所以,

[FBRequestConnection startWithGraphPath:@"/app/subscriptions"

将来进行测试时,最好只在裸骨设置中单独使用API​​,例如https://developers.facebook.com/tools/explorer/因此,您可以在执行特定于平台的实施之前确保API调用正常工作。