疯了 - 如何设置一个fb-app让我的iOS-App可以发布到它的墙上?

时间:2012-10-16 21:02:49

标签: ios facebook post facebook-wall

好的,我知道如何发布到用户的墙上(时间轴?),效果很好。

我想要的是当用户在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:...]首先设置对象,然后是键...

我现在感觉有点蠢......

1 个答案:

答案 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