发送消息时统一引擎 API 中的禁止错误 403
Forbidden error 403 in Unification Engine API while sending message
我正在使用#unificationengine API 在 Facebook 上发送消息。
我在 facebook 上注册我的应用程序时提供的详细信息:
网站url:http://localhost:3000
电子邮件地址和其他必需的详细信息
在 unificationengine API 我已经使用了他们文档中提到的所有 curl ,如下所示:
1. 使用 API 密钥和密钥创建用户
2.新增连接
3.测试连接
4.刷新连接
5. 发送消息
所有 4 个都给出了 200 成功代码,但发送消息给出了 403 fobidden 错误。
我用的curl如下:
$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 选项,但它并没有改变这些东西。
非常感谢任何帮助。
错误信息:
{\"Status\":{\"facebook\":{\"status\":403,\"info\":\"Forbidden:
\"}},\"URIs\":[]}
更新
下面是我在 facebook 图 API 资源管理器中 运行 me/permissions 时得到的 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"
}
]
}
能否请您确认您提供的 "Connector" 名称是否正确?
虽然我尝试了您提供的示例代码,但我可以通过 UE 将消息发送到 facebook。
能否请您提供执行命令时返回的确切错误消息?
我已经解决了这个问题:
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);
}
请使用您的密钥
脸书访问令牌
UNIFICATION_APP_KEY(这是你的统一密钥)
UNIFICATION_APP_SECRATE(它是你的统一密钥)
如果这行不通,请告诉我。
我正在使用#unificationengine API 在 Facebook 上发送消息。 我在 facebook 上注册我的应用程序时提供的详细信息:
网站url:http://localhost:3000
电子邮件地址和其他必需的详细信息
在 unificationengine API 我已经使用了他们文档中提到的所有 curl ,如下所示: 1. 使用 API 密钥和密钥创建用户 2.新增连接 3.测试连接 4.刷新连接 5. 发送消息
所有 4 个都给出了 200 成功代码,但发送消息给出了 403 fobidden 错误。
我用的curl如下:
$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 也应该给出这样的错误。
早些时候我已经发布了这个
非常感谢任何帮助。
错误信息:
{\"Status\":{\"facebook\":{\"status\":403,\"info\":\"Forbidden: \"}},\"URIs\":[]}
更新 下面是我在 facebook 图 API 资源管理器中 运行 me/permissions 时得到的 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"
}
]
}
能否请您确认您提供的 "Connector" 名称是否正确?
虽然我尝试了您提供的示例代码,但我可以通过 UE 将消息发送到 facebook。
能否请您提供执行命令时返回的确切错误消息?
我已经解决了这个问题:
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);
}
请使用您的密钥 脸书访问令牌 UNIFICATION_APP_KEY(这是你的统一密钥) UNIFICATION_APP_SECRATE(它是你的统一密钥)
如果这行不通,请告诉我。