使用facebook php sdk version 4发送消息的请求结构是什么?

时间:2014-05-22 08:12:13

标签: php facebook-graph-api facebook-php-sdk

我尝试了Facebook提供的入门示例,他们工作并返回结果。

我想发送消息,但我不断收到不支持的帖子请求错误。

在旧的sdk我过去常常这样做

$r = $facebook->api("/" . $facebook_inbox_id . '/messages', 'POST', array('access_token'=>$token, 'message'=>$message_text));

这是我的代码,我有

的问题
$path    = "/590340984336945/messages/";
     $msg     = 'new msg';
     try{
         if($session){
             $response = (new FacebookRequest(
               $session, 'POST', $path, array(
                 'message'=>$msg,
               )
               ))->execute()->getGraphObject();

             print_R($response);
         }
     }catch(\Facebook\FacebookRequestException $ex){
         die($ex->getMessage());
     }

我在会话中有一个有效的访问令牌。

有人可以告诉我这是什么问题,或者什么相当于在旧版本的旧版SDK中发送一个msg?

发现我必须在$ path =“/ 590340984336945 / messages /”前加上前缀;用'/v2.0'

现在我收到了未知路径组件错误。

编辑:我使用Facebook作为页面而不是用户。并希望从页面向用户发送消息。

2 个答案:

答案 0 :(得分:2)

我不得不使用扩展令牌,一切运行良好。

我不知道为什么互联网上有这么多帖子说你不能使用api发送信息。我是用旧api做的,现在是新的。

将facebook作为页面发送给用户时发送消息的代码:

        \Facebook\FacebookSession::setDefaultApplication('app_id','secret');
         $session = new \Facebook\FacebookSession("$token");
         $msg = 'hello world'!;

         try{
             if($session){
                 //make an api call to create a new reply for a message
                 $result = (new FacebookRequest(
                   $session, 'POST', '/' . $fbInboxId . '/messages', array(
                     'message'=>$msg,
                   )
                   ))->execute()->getGraphObject();
          }catch(Exception $e){}

答案 1 :(得分:-1)

当仅支持读取邮箱时,不确定如何使用API​​设置发送邮件。 Both v1.0 and v2.0 do not support publishing to Threads(即支持通过API发送消息)。

必须使用Send Dialog发送消息。