发送消息时,统一引擎API中出现禁止错误403



我正在使用#unificationonengine API在facebook上发送消息。我在脸书上注册应用程序时提供的详细信息:

  1. 网站网址:http://localhost:3000

  2. 电子邮件地址和其他要求的详细信息

在unificationonengine API中,我使用了他们文档中提到的所有卷曲,步骤如下:1.使用API密钥和机密创建用户2.增加了连接3.测试连接4.刷新连接5.发送消息

所有4个都给出了200个成功代码,但发送消息给出了403个fobidden错误。

我使用的卷曲如下:

$post_msg = json_encode(
array(
'message' =>
array(
'receivers' =>
array(
array(
'name'      => 'Me',
'address'   => 'https://graph.facebook.com/v2.5/me/feed',
'Connector' => 'facebook'
),
),
'sender'    =>
array('address' => ''),
'subject'   => 'Hello',
'parts'     =>
array(
array(
'id'          => '1',
'contentType' => 'text/plain',
'data'        => 'Hi welcome to UE',
'size'        => 100,
'type'        => 'body',
'sort'        => 0
),
),
),
)
);

$ch = curl_init('https://apiv2.unificationengine.com/v2/message/send');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_USERPWD,'3f43c37b-a066-4cc4-a3be-33faf72d6a21:2722fc72d-5d347-4a3a-a82b-0c1ss51aafb4');
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_msg);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);


// execute!
$response = curl_exec($ch);
// close the connection, release resources used
curl_close($ch);
// do anything you want with your response
var_dump($response);

return ['label' =>$response];

我正试图弄清楚这一点。但没有成功。

我想再次提到,我在本地主机上使用这个,这可能是禁止错误的原因吗?如果是这样的话,那么我们从中获取访问令牌的facebook图形api也应该给出这样的错误。

早些时候我已经发布了这个问题,在这里我也没有找到正确的解决方案。我添加了Curl选项,这是在我的问题评论中提到的,但它并没有改变事情。

如有任何帮助,我们将不胜感激。

错误消息:

{\"状态\":{\"facebook\":{\"状态\":403,\"信息\":\"禁止:\"}},\"URIs\":[]}

更新下面是我在facebook图形API资源管理器:中运行我/权限时获得的json

{
"data": [
{
"permission": "user_birthday",
"status": "granted"
},
{
"permission": "user_about_me",
"status": "granted"
},
{
"permission": "user_status",
"status": "granted"
},
{
"permission": "user_posts",
"status": "granted"
},
{
"permission": "email",
"status": "granted"
},
{
"permission": "manage_pages",
"status": "granted"
},
{
"permission": "publish_actions",
"status": "granted"
},
{
"permission": "public_profile",
"status": "granted"
}
]
}

我已经解决了这个问题:

public function facebookSharing($access_token) {
$app = new UEApp(env('UNIFICATION_APP_KEY'), env('UNIFICATION_APP_SECRATE'));
$user = new UEUser('unification_userkey', 'unification_usersecret');
$connection = $user->add_connection('FACEBOOK', "facebook", $access_token);
$options = array(
"receivers" => array(
array(
"name"=> "Me"
)
),
"message"=>array(
"subject"=>'testing',
"body"=> 'description',
"image"=> 'use any image url',
"link"=>array(
"uri"=> 'any web site url',
"description"=> "",
"title"=>"Title"
)
)
);
$uris = $connection->send_message($options);
}

请像这样使用您的钥匙facebook访问令牌UNIFICATION_APP_KEY(它是您的统一密钥)UNIFICATION_APP_SECRATE(它是您的统一密钥)

如果这不起作用,请告诉我。

您能确认您给出的"连接器"名称是否正确吗?

当我尝试你提供的示例代码时,我可以通过UE将消息发送到facebook。

您能提供执行命令时返回的确切错误消息吗?

最新更新