使用图形API在朋友的墙上发布

时间:2011-03-30 18:58:01

标签: php facebook facebook-graph-api message

在朋友的墙上发布消息,图API。 我拥有正在使用该应用程序的用户的publish_stream扩展权限。

如果我想在我的墙上发帖,代码就会工作。

是否有任何方法可以在墙上发布或向特定用户的所有朋友发送消息?

请帮助谢谢!!

以下是代码,但它不起作用。

 $friends = $facebook->api('/me/friends');
    foreach($friends['data'] as $friend){
            $friendsUserId = $friend['id'];
            echo $friendsUserId . "</br>";
            $result = $facebook->api('/$friendsUserId/feed', 'POST', array(                
                    message' => 'Test Message'                ));
            print_r($result);
        }

5 个答案:

答案 0 :(得分:6)

这可能就是这样做的方法..(未经测试,但我的应用程序使用类似的东西。)

$friends = $facebook->api('/me/friends');

    foreach($friends['data'] as $friend) {
        $facebook->api('/$friend['id']/feed', 'post', array(
                  'message' => 'just a test message',
                  'link' => 'http://site.com',
                  'name' => 'just a test name',
                  'caption' => 'just a test caption',
                  'description' => 'just a test description',
          ));

}

这是使用 PHP API

答案 1 :(得分:5)

我只是进行了一些测试,并且拥有用户的权限,我确实可以通过php api发布在用户的朋友墙上:

$facebook->api('/[FRIEND_ID]/feed', 'post', array(
          'message' => 'test message',
          'link' => 'http://google.com',
          'name' => 'test name',
          'caption' => 'test caption',
          'description' => 'test long description',
      ));

答案 2 :(得分:3)

publish_stream权限只允许您在特定用户墙上发布内容 - 您无法在他所有朋友的墙上发帖。

以这种方式思考 - 假设你没有授权应用程序在你的Facebook墙上发布任何内容,只是因为你的一个朋友已经访问了他的墙 - 它自动不会让应用程序访问在墙上发布他所有的朋友。

修改

Rahul,我昨天晚上尝试以自己的身份登录,并通过我的应用程序在我的一个朋友的墙上发布了一条消息,令人惊讶的是它有效。我有一种错误的印象,你不能这样做。道歉。

但我仍然无法解决这个问题。让我解释一下

1) I have my real facebook lets call it abc and a test facebook account xyz which I've added as my friend to abc
2) I login into my app using my abc faceboook account and publish a message on the wall of my friend xyz
3) Now I login to facebook.com as abc and it shows on my news feed the message that I published on xyz's wall. When I click on xyz's profile - the message shows up on his wall too. So far so good
4) Now I log out of facebook.com as abc and log back in as xyz. But now I dont see the message that was posted through the app on the wall of xyz.

我不知道是否有任何延迟,但我已经等了30分钟,但仍然没有。但是当我以abc登录时它会继续显示。

我希望你能理解我在这里要传达的内容。 我使用了与你相同的代码 - 所以你可以尝试上面的场景,看看你是否遇到类似的东西

由于

答案 3 :(得分:0)

Gubloo的答案很接近。

张贴到朋友的墙上是完全可能的,但有一点需要注意,说朋友必须在某个时候也经历过“权限”对话。这意味着,您的应用程序的用户将能够发布到您的应用程序的其他用户的墙上。

我打算给你iPhone代码,因为我不知道php,想象你会得到这个要点。只需将“我”替换为您要发布的任何内容的UID,成为页面或朋友的个人资料。

[_facebook requestWithGraphPath:@"/me/feed" andParams:params andHttpMethod:@"POST" andDelegate:self];

我真的很想知道这是否会让用户能够在任何使用该应用程序的人的墙上张贴,而不仅仅是他的朋友。

答案 4 :(得分:0)

$ friends = $ facebook-&gt; api('/ me / friends');

foreach($friends['data'] as $friend) {
    $facebook->api('/$friend['id']/feed', 'post', array(
              'message' => 'just a test message',
              'link' => 'sample link.com',
              'name' => 'just a test name',
              'caption' => 'just a test caption',
              'description' => 'just a test description',
      ));

} 上面的代码对我来说也是如此 谢谢你的帖子