【问题标题】:Facebook publish_actions to timeline for iOSFacebook publish_actions 到 iOS 的时间线
【发布时间】:2012-03-20 07:14:34
【问题描述】:
在 stackoverflow.com 上搜索 Facebook 开发人员文档/错误和问题后,尚不清楚 Facebook 现在是否支持通过其 iOS SDK 将 publish_actions 发布到时间线。此站点上存在一些与移动设备上的 publish_actions 权限相关的问题,但它们没有提供任何解决方案。
- Facebook 是否为所有第三方应用推出了针对移动设备的 publish_actions,还是仍仅限于开发人员?
- Facebook 是否允许通过 iOS SDK 的 publish_actions 权限将动作发布到时间线?
- 是否有任何示例、示例代码或教程来说明如何在 iOS 上实现它?
如果有任何指点,我将不胜感激。
【问题讨论】:
标签:
facebook
facebook-opengraph
facebook-ios-sdk
facebook-timeline
【解决方案1】:
是的。在 iOS 中发布操作就像在桌面 Web、移动 Web 和 Android 中一样。
请求 publish_actions 权限的方法与请求任何其他权限的方法相同。
发布操作的方法与您在任何平台上进行的 Graph API 调用相同:
POST https://graph.facebook.com/me/APP_NAMESPACE:ACTION_NAME?OBJECT_NAME=OBJECT_URL&access_token=TOKEN
例如
POST https://graph.facebook.com/me/myapp:cook?recipe=http://exmaple.com/recipe&access_token=TOKEN
在 Objective C 中你可能有类似的东西
AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
[[delegate facebook] requestWithGraphPath:@"me/myapp:cook" andParams:@"http://exmaple.com/recipe" forKey:@"recipe"] andHttpMethod:@"POST" andDelegate:self];
【解决方案2】:
我无法完成这项工作。我已经让 Facebook 发布了我的操作,所以样本是从 CURL 发送的,但是从 IOS 我总是收到域错误 1000。
这是我的代码:
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
@"http://itunes.apple.com/us/app/ginos-challenge/id509946175",@"og.url",
@"Played on Gino's challenge",@"og:title",
@"http://media.appspy.com/thumbs/images/icons/i509946175_jpg_180x180_q85.jpg",@"og:image",
@"This is my first post",@"og:description",
@"1000", @"game_point",
nil];
// Publish.
// This is the most important method that you call. It does the actual job, the message posting.
[facebook requestWithGraphPath:@"me/[action domain]:[action name]" andParams:params andHttpMethod:@"POST" andDelegate:self];
【解决方案3】:
不,publish_action 不支持在时间线中发布。您应该添加一个新标签,例如fb:explicitly_shared。将此设置为BOOL 值。如果你设置true,它会显示在用户的时间轴中,否则它不会。