好的,我知道如何发布到用户的墙上(时间轴?),效果很好。
我想要的是当用户在iPhone上执行某些操作时,应该在APP的墙上显示为帖子。帖子应该是用户名。
类似的东西:
Lucky Luke说:大家好
Zaphod Beeblebrox开始使用Awesomeapp
PLUS:只有应用程序的用户才能发布到应用程序的墙上(我看到页面上的设置«管理权限» - 我可以设置谁可以发布到墙上。我不希望所有人发帖子)
如果我是对的,该帖子也会自动显示在用户的Feed中,不是吗?或者我是否必须在用户的墙上发帖?
当用户首次使用该应用时,我请求以下权限:@“user_photos”,@“user_videos”,@“manage_pages”,@“read_stream”,@“publish_stream”,@“user_checkins”,@“friends_checkins” ,@ “电子邮件”,@ “USER_LOCATION”
(最近添加了read_stream和manage_pages,因为我在某处读到了 - 但没有帮助,但是:)
这是我用来发布帖子的代码:
NSString *graphPath = [NSString stringWithFormat: @"/%@/feed?access_token=%@", FBAppID, [FBAccessToken stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]];
NSLog(@"graph path %@", graphPath);
NSDictionary *postParams =
@{
@"Test": @"message"
};
[FBRequestConnection
startWithGraphPath:graphPath
parameters:postParams
HTTPMethod:@"POST"
completionHandler:^(FBRequestConnection *connection,
id result,
NSError *error) {
if (error) {
NSLog(@"error: domain = %@, code = %d, %@",
error.domain, error.code, error.description);
} else {
NSLog(@"Posted action, id: %@",
[result objectForKey:@"id"]);
}
// Show the result in an alert
}];
返回错误100(缺少消息或附件 - OAuthException)
我用Google搜索了两天,找不到合适的指导方针......帮助!!! :)
[编辑]我可能会做点什么......
似乎NSDictionary *postParams @{@"Test": @"message"};
就是问题所在。
当我使用正确的[[NSDictionary alloc] initWithObjectsAndKeys: ...];
它似乎有用......我们会看到:)
[编辑]好的 - 我应该休息一下,看来......
使用@ {...}初始化字典首先需要键,然后是对象,vs [NSDictionary dictionaryWithObjectsAndKeys:...]首先设置对象,然后是键...
我现在感觉有点蠢......
答案 0 :(得分:0)
这就是我在代码中执行此操作的方式:
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
@"My app's name", @"name",
@"Some cool caption", @"caption",
@"Super description", @"description",
@"http://stackoverflow.com//", @"link",
nil];
[FBRequestConnection startWithGraphPath:@"me/feed"
parameters:params
HTTPMethod:@"POST"
completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
.....
}];
请注意GraphPath
,它与您的有点不同。同样在我的Info.plist
中有一个facebookId值:
<key>FacebookAppID</key>
<string>123456789876543</string>
和facebook url scheme:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>fb123456789876543</string> (fb + your app id)
</array>
</dict>
</array>
我已将facebookSDK
添加到项目中(我认为你已经这样做了)
所以这个东西足以让我至少发布到我的墙上
所以请看一下你的facebookAppID
,也许还有其中的内容,
以防这是official facebook tutorial