我尝试了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作为页面而不是用户。并希望从页面向用户发送消息。
答案 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发送消息。