40

任何人都可以帮助我使用图形API向Facebook的朋友发送消息。如何通过图表api使用Accessstoken发送消息Facebook朋友

我试图

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

它不工作。 我的手中有用户的使用权限。只有在发送过程中我很困惑。

+0

您是否也有访问约翰的令牌?该应用程序需要有足够的权限才能将任何内容发布到约翰的供稿 – 2010-10-03 18:41:36

+1

我们能够通过javascript发送答案。检查我的答案。 – 2012-02-29 17:39:36

回答

5
$attachment = array(

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

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

这将在$ uesr_id的墙上发布消息。 – 2012-02-23 12:43:07

+1

@SomnathMuluk这不再适用,因为它已被弃用! – Lomse 2013-02-20 11:28:39

+0

@Lomse:是的...它已于2013年2月弃用。 – 2013-02-20 15:48:52

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 
+0

请链接到文档? – Tushar 2013-09-07 07:13:53

50

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

提供的爱丽丝,你的用户,给你必要的extended permissions,您有以下选项:代表她

  • 后翘的墙
  • 发送电子邮件给爱丽丝
  • 建立代表活动爱丽丝 的
    • 邀请鲍勃(而不是用户),以表示事件
  • 问题代表爱丽丝的请求/邀请鲍勃
  • 问题从App爱丽丝
+1

请注意,您不能从Alice发送电子邮件给Bob(从Alice到Bob的消息看起来是OP的目标) – 2012-04-24 17:31:51

+0

呃......可以使用'to'字段来玩;)但是不能,您不能。因此它没有被列出。 – 2012-04-24 18:53:15

+0

这里是链接说你不能得到朋友的电子邮件地址:https://developers.facebook.com/docs/reference/login/email-permissions/ – 2013-05-23 23:45:37

4

技术上的要求,你可以做饲料或横向进给后与隐私设置,只允许饲料老板看到该帖子,但它并不真正发送消息给一个人。

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/

+0

非常感谢。我正在寻找这个。这甚至有助于预先填充消息字段,因此使用此对话框可以很容易地向我的应用程序发送邀请链接。 – qasimzee 2011-08-09 09:40:57

+5

有没有办法绕过发送对话框弹出并通过url直接发送消息? – CyberJunkie 2012-05-12 19:04:05

+0

你可以在'to'字段中有app指定的多个userIds吗? – 2013-12-12 19:08:28

9

消防此事件发送消息(脸谱对象的初始化前就应该完成)。

到: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。必需,但由大多数 SDKs自动指定。

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


  • 发送消息的用户ID或用户名。一旦出现对话框 ,用户可以指定发送邮件的其他用户,Facebook群组和电子邮件地址。将内容发送到 Facebook群组将会将其发布到群组的墙上。

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

  • 图片
    默认情况下,图片将从指定的链接中获取。要包含在消息中的图片的URL 。图片将在链接旁边显示 。

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

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

+0

这是否仍然有效? – CyberJunkie 2012-05-12 19:05:03

+1

是的,它的作品... – 2012-05-14 04:55:22

+1

@SomnathMuluk我看到你的答案发布了几次;你能否确认你只能预先填写'to'字段的一个朋友?在我的应用程序中,我想发送消息给多个不需要输入名称的朋友,这不可能正确吗?谢谢。 – RyanG 2012-06-08 19:06:00

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方法必须是类似的。

+1

用于工作,但现在已弃用。 – aVC 2013-07-10 17:14:04

0

而不是使用下面的代码

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

采用如下方案

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

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

+0

令人惊讶的是,这仍然有效 – 2013-08-13 22:08:08

+0

我知道这回答了一段时间。但是,如何让我的手在白色标签域上?你知道哪些标准fb用来确定欺骗吗? – 2013-10-28 18:34:14

+0

这对我不起作用:(不幸的是,考虑到它有多容易 – user1349663 2014-06-02 12:02:25

2

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

-1

好像你想发送消息到接收者的主收件箱,没有任何图形api为此,你需要使用facebook xmpp chat api并发送消息,但是我做了一个php类这太容易使用,只是一些函数调用和调用发送消息函数和消息将被发送,它的开源,检查出来:facebook message api php描述说它是一个封闭的源,但评论说它现在是一个开源,你可以从github克隆。现在它是一个开源软件。

相关问题