代码之家  ›  专栏  ›  技术社区  ›  Sjakelien

FB图形订阅IOS发送access_token

  •  0
  • Sjakelien  · 技术社区  · 10 年前

    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 回复  |  直到 10 年前
        1
  •  0
  •   phwd    10 年前

    这样做的方法是使用应用程序令牌创建FBSession。因为当前会话不是您想要的。

    但是,出于安全考虑,你根本不应该这样做。在生产应用程序中嵌入应用程序令牌是非常不安全的。我认为为您生成的iOS示例不正确。

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