在 iOS Facebook SDK 3.0 上作为粉丝页面发布

Posted

技术标签:

【中文标题】在 iOS Facebook SDK 3.0 上作为粉丝页面发布【英文标题】:Post as a fan page on iOS Facebook SDK 3.0 【发布时间】:2012-09-12 16:22:44 【问题描述】:

我正在尝试以粉丝页面而不是用户的身份发布到粉丝页面。

在旧版 SDK 上,我只要求输入“我/帐户”并收到访问令牌。现在我可以做同样的事情,但我无法使用该令牌,因为 FBRequest 从活动会话中获取其访问令牌(而且,它是一个只读属性)。

有谁知道如何创建另一个会话或简单地使用页面令牌创建 FBRequests?

谢谢!

【问题讨论】:

根据developers.facebook.com/docs/reference/api/page/…,在请求访问令牌时,可以指定需要manage_pages和publish_stream权限才能作为页面发布。 谢谢,我有 access_token,如果我自己构建 NSURLRequest 就可以使用它。但我正在尝试了解如何正确使用 FBRequest 和 FBSession。 【参考方案1】:

找到了一个解决方案,它不是最干净的,但它可以工作:注意:已针对 Facebook SDK 3.2+ 更新

- (void)postAsFanPageWithToken:(NSString *)aFanPageToken   
    if (self.selectedFanPage == nil) 
        self.userAccessToken = [FBSession activeSession].accessTokenData.accessToken;
    
    //Using KVC, since it is a readonly property
    [[FBSession activeSession].accessTokenData setValue:aFanPageToken forKey:@"accessToken"];


- (void)postAsMe 
    if (self.userAccessToken == nil) 
        return; //Already posting as me
    
    [[FBSession activeSession].accessTokenData setValue:self.userAccessToken forKey:@"accessToken"];
    self.userAccessToken = nil;


// Make sure you cleanup on logout
- (void)logout 
    self.userAccessToken = nil;
    [[FBSession activeSession] closeAndClearTokenInformation];

【讨论】:

对我来说它也可以工作,但是您是否找到了另一个更好的解决方案? 不,这是一个有点脏的解决方案,但他们的新 SDK 文档中没有提到这种情况。 @NatanR。如果您使用 SDK 3.2 或更高版本,请参阅最后一条说明 @NatanR。我已经更新了代码(上次更新我忘记了 self.userAccessToken = [FBSession activeSession].accessTokenData.accessToken;)。告诉我它是否适合你..

以上是关于在 iOS Facebook SDK 3.0 上作为粉丝页面发布的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Facebook iOS SDK 3.0 中重现教程示例“Scrumptious”

在 iOS Facebook SDK 3.0 上作为粉丝页面发布

FBSession 的 Facebook iOS SDK 3.0 登录教程问题

iOS Facebook SDK 3.0 登录未重定向到原始应用程序

Facebook iOS SDK 3.0 中的深度链接和 FBSessionDelegate

Facebook iOS SDK 3.0,在 url 上实现类似的操作?