41

任何人都可以帮助我使用图形 api 向 Facebook 朋友发送消息。

我试过了

$response = $facebook->call_api("/me/feed", "post", "to=john","message=You have a Test message");

它不工作。我手里有用户的访问令牌。只有我对发送过程感到困惑。

4

9 回答 9

51

您不能使用 Facebook 应用程序发送消息。你曾经能够做到这一点,但是(可预见的?)大量滥用导致了这种能力的撤销。

如果您的用户 Alice 为您提供了必要的扩展权限,您有以下选择:

  • 代表爱丽丝在墙上发帖
  • 向爱丽丝发送电子邮件
  • 代表 Alice 创建事件
    • 邀请 Bob(不是您的用户)参加上述活动
  • 代表 Alice 向 Bob 发出请求/邀请
  • 从 App 向 Alice 发出请求
于 2010-10-31T00:24:50.570 回答
29

您可以在弹出窗口中打开发送对话框。

 $parameters = array(
    'app_id' => $facebook->getAppId(),
    'to' => $facebookUserId,
    'link' => 'http://google.nl/',
    'redirect_uri' => 'http://my.app.url/callback'
 );
 $url = 'http://www.facebook.com/dialog/send?'.http_build_query($parameters);
 echo '<script type="text/javascript">window.open('.json_encode($url).', ...

有关详细选项,请参阅: https ://developers.facebook.com/docs/reference/dialogs/send/

于 2011-08-02T13:53:47.803 回答
5
$attachment =  array(

    'access_token' => $access_token,
    'message'      => $msg,
    'name'         => $name,
    'link'         => $link,
    'description'  => $desc,
);

facebook->api('/'.$uesr_id.'/feed', 'POST', $attachment);
于 2010-08-01T15:14:24.190 回答
4

从技术上讲,您可以使用隐私设置进行提要或交叉提要帖子,仅允许提要所有者查看帖子,但不会真正向某人发送消息。

于 2010-12-16T21:26:31.363 回答
2

您可以发送到他们的 Facebook 电子邮件。Facebook 电子邮件由个人资料昵称+'@facebook.com' 组成。该电子邮件将发送到他们的 Facebook 收件箱消息。请注意,Facebook 电子邮件不接受欺骗性电子邮件。您将需要 whitelabel 域或使用 SendGrid。

于 2013-01-19T07:17:39.190 回答
2
You can use
HTTP POST with
PATH
https://graph.facebook.com/friend_facebook_id/feed
PARAMETER
MESSAGE = your message
ACCESS_TOKEN = your oauth2 access token
于 2010-08-25T07:59:16.613 回答
2

您将需要集成 xmpp 聊天来回复消息并编写新消息。

于 2013-04-16T05:00:40.907 回答
0

看到这个帖子,发现不对。使用 javascriot api,您可以像这样发布到朋友的提要:在这个例子中,“friendID”是朋友的 FB 用户 ID。此 api 调用需要“publish_stream”权限。

FB.api('/'+friendID+'/feed', 'post', 
            {
                method: 'feed',
                message: messageText,
                name: 'write a title here',
                caption: 'Put a caption here.',
                description: 'Put your description here.',
                link: 'http://stackoverflow.com/questions/2943297/how-send-message-facebook-friend-through-graph-api-using-accessstoken',
                picture: 'link to the preview thumbnail',                   
            },
             function(response) {
              if (!response || response.error) {
                //alert('Error occured');
              } else {
                //alert('Post ID: ' + response.id);
              }
        });

所以这是用 javasfcript SDK 完成的——PHP 方法必须类似。

于 2012-08-14T21:57:22.577 回答
0

而不是使用下面的代码

    [facebook dialog:@"feed"
     andParams:params 
     andDelegate:self]; 

使用以下解决方案

[facebook requestWithGraphPath:@"me/feed"
   andParams:params
   andHttpMethod:@"POST"
   andDelegate:self];
于 2012-11-28T06:36:22.177 回答