如何使用Accessstoken通过图形api发送消息facebook朋友

时间:2010-05-31 11:49:15

标签: php facebook facebook-graph-api facebook-messages facebook-friends

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

我试过

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

它不起作用。 我手里拿着用户的accessstoken.only我对发送过程很困惑。

11 个答案:

答案 0 :(得分:51)

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

如果您的用户Alice已经为您提供了必要的extended permissions,则您有以下选择:

  • 代表她邮寄到Alice的墙上
  • 发送电子邮件至Alice
  • 代表Alice创建活动
    • 邀请Bob(不是您的用户)参加活动
  • 代表Alice向Bob发出请求/邀请
  • 从应用程序向Alice发出请求

答案 1 :(得分:29)

您可以在弹出窗口中打开Send Dialog

 $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/

答案 2 :(得分:9)

触发此事件以发送消息(应在之前完成facebook对象的初始化)。

to:facebook的用户ID

function facebook_send_message(to) {
    FB.ui({
        app_id:'xxxxxxxx',
        method: 'send',
        name: "sdfds jj jjjsdj j j ",
        link: 'https://apps.facebook.com/xxxxxxxaxsa',
        to:to,
        description:'sdf sdf sfddsfdd s d  fsf s '

    });
}

属性

  • APP_ID
    您的应用程序的标识符。必需,但自动指定 大多数SDK都有。

  • REDIRECT_URI
    用户单击“发送”或“取消”后重定向到的URL 对话框上的按钮。必需,但大多数都是自动指定的 软件开发工具包。

  • 显示
    用于呈现对话框的显示模式。这是自动的 由大多数SDK指定。


  • 要将消息发送到的用户标识或用户名。一旦对话 用户可以指定其他用户,Facebook群组和 要将消息发送到的电子邮件地址。将内容发送到 Facebook小组将把它发布到小组的墙上。

  • 链路
    (必填)发送消息的链接。

  • 图片
    默认情况下,将从指定的链接中获取图片。网址 要包含在邮件中的图片。图片将会显示出来 在链接旁边。

  • 名 默认情况下,将从指定的链接中获取标题。的名字 链接,即用户将单击的显示文本。

  • 描述
    默认情况下,将从指定的链接中获取描述。 描述性文字显示在链接下方。

答案 3 :(得分:5)

$attachment =  array(

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

facebook->api('/'.$uesr_id.'/feed', 'POST', $attachment);

答案 4 :(得分:4)

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

答案 5 :(得分: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

答案 6 :(得分:2)

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

答案 7 :(得分:2)

您需要集成xmpp chat来回复邮件并撰写新邮件。

答案 8 :(得分:0)

我看到这篇文章并注意到它不对。使用javascriot api你可以发布给朋友的feed,如下所示: 在此示例中,“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方法必须类似。

答案 9 :(得分:0)

而不是使用以下代码

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

使用以下解决方案

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

答案 10 :(得分:-1)

似乎您想将消息直接发送到接收者的主要收件箱中,没有任何图形api,您需要使用facebook xmpp chat api并发送消息,但是我已经制作了一个易于使用的PHP类,只是一些函数调用和调用发送消息的功能和消息将被发送,它的开源,检查出来:facebook message api php描述说它是一个封闭的源但是评论说它现在是一个开源,你可以从github克隆。它现在是一个开源的。