Запрещенная ошибка 403 в API Unification Engine при отправке сообщения
Я использую API #unificationengine для отправки сообщения на Facebook. Подробности, которые я дал при регистрации моего приложения на Facebook:
URL сайта: http://localhost:3000/
Адрес электронной почты и другие необходимые данные
В UnificationEngine API я использовал пошаговые инструкции, упомянутые в их документации, следующим образом: 1. Создал пользователя, используя ключ API и Секрет 2. Добавил соединение 3. Тестировал соединение 4. Обновил соединение 5. Отправил сообщение
Все 4 дали 200 успешных кодов, но отправка сообщения выдала 403 ошибочную ошибку.
Завиток, который я использую для этого, как показано ниже:
$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 graph api, из которого мы получаем токен доступа, также должен выдавать такую ошибку.
Ранее я публиковал этот вопрос, вот и я не нашел правильного решения. Я добавил опции Curl, которые упоминаются в комментарии к моему вопросу, но это ничего не изменило.
Любая помощь будет высоко оценен.
Сообщение об ошибке:
{\ "Status \": {\ "facebook \": {\ "status \": 403, \ "info \": \ "Forbidden: \"}}, \ "URIs \": []}
ОБНОВЛЕНИЕ Ниже приведен json, который я получаю, когда запускаю me/permissions в Facebook Graph API Explorer:
{
"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"
}
]
}
2 ответа
Я решил эту проблему:
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 accessnoken UNIFICATION_APP_KEY (это ваши ключи объединения) UNIFICATION_APP_SECRATE (это ваши ключи объединения)
Если это не сработает, пожалуйста, дайте мне знать.
Можете ли вы подтвердить правильность введенного вами имени "Соединитель"?
Пока я пробовал предоставленный вами пример кода, я мог отправить сообщение на Facebook через UE.
Можете ли вы предоставить точное сообщение об ошибке, которое возвращается при выполнении команды?