4

在我的 iOS 应用程序中,我想在 Facebook 页面上作为 Facebook 页面发帖。

我通过用户通过“我/帐户”端点检索页面访问令牌。但是,我不确定如何使用该页面访问令牌创建 FBSession 以创建发布请求。

页面访问令牌是一个字符串,我通过向用户询问“manage_pages”和“publish_streams”权限来正确获取它。

是否有捷径可寻?我一直在查看 fetchFBAccessTokenData 但不确定如何使用它。

4

2 回答 2

4

答案是——这花了我很长时间才找到——initWithSession:FBSession.activeSession应该是initWithSession:nil,并且访问令牌应该在parametersNSDictionary 字段中设置为[parameters setObject:yourAccessToken forKey:@"access_token"]. FBSession.activeSession 中的访问令牌覆盖了参数中的 access_token(恕我直言,它不应该),使帖子显示为“粉丝”帖子,而不是作为页面的帖子。

[d addObject:yourFetchedAccessTokenString forKey:@"access_token"];
FBRequest *request = [[FBRequest alloc] initWithSession:nil
                                              graphPath:graphPath
                                             parameters:d
                                             HTTPMethod:@"POST"];

当然现在还有其他问题,比如访问令牌会持续多久,这需要令牌缓存策略:https ://developers.facebook.com/docs/howtos/token-caching-ios-sdk/

在这里找到答案:https ://github.com/facebook/facebook-ios-sdk/pull/483

于 2013-05-11T19:59:35.953 回答
1

非常感谢 James O'Brien 的代码。除此之外,您可能需要以下代码:

FBRequestConnection *con = [[FBRequestConnection alloc] init];
[con addRequest:request completionHandler:^(FBRequestConnection *connection, id result, NSError *error){
    NSLog(@"facebook result >> %@", result);
    [self cancelfbshare:nil];

}];
[con start];
于 2013-07-02T10:13:01.007 回答