2017-01-06 2 views
2

Я использую механизм объединения #unificationengine API для отправки сообщения на facebook. Я выполнил все шаги и создал соединения для использования разъемов. Все запросы на завивки работают нормально, пока не отправляются сообщения. В каждом завитке от создания пользователя, создать соединение, соединение обновления я получаю403 запрещенная ошибка при отправке сообщений в соединитель facebook через API Unification Engine

{ «статус»: 200, «информации»: «ОК»}

А теперь я хочу использовать разъем для отправки сообщения на Фейсбуке. Ниже мой Curl код:

$post_msg = json_encode(
     array(
      'message' => 
       array(
        'receivers' => 
         array(
           array(
            'name'  => 'Me', 
            'address' =>'https://graph.facebook.com/'.$request->profile_id.'/feed?access_token='.$request->access_token.'&message=Hello&method=post', 
            'Connector' => 'facebook' 

           ), 
         ), 
         'sender' => 
         array('address' => 'sender address'), 
         'subject' => 'Hello', 
         'parts'  => 
         array(
           array(
            'id'   => '1', 
            'contentType' => 'binary', 
            '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_USERPWD, "0a7f4444-ae4445-45444-449-d9b7daa63984:8755b446-6726-444-b34545d-713643437560"); 
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
    curl_setopt($ch, CURLOPT_VERBOSE, true); 
    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]; 

и я получаю:

status: 403 and info: forbidden in response.

Я попробовал все, что доступно в документации и на переполнение стека или любой другой веб-сайт. Но удачи.

Пожалуйста, объясните, почему я получаю эту ошибку?

Refrence SO Вопросы:

  1. SO question 1

  2. SO question 2

Благодарности.

Update Я добавил эти три варианта локонов запроса:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
    curl_setopt($ch, CURLOPT_VERBOSE, true); 

и теперь я получаю 498, недействительный доступ лексемы ошибка:

"{\"Status\":{\"facebook\":{\"status\":498,\"info\":\"Invalid Token: \"}},\"URIs\":[] }

+1

Можете ли вы проверить, работает ли он, добавив curl_setopt ($ ч, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt ($ ch, CURLOPT_SSL_VERIFYHOST, 0); Если он все еще показывает ошибку, добавьте curl_setopt ($ ch, CURLOPT_VERBOSE, true); и проверьте, какую ошибку он показывает. –

+0

Ничего не изменилось по ошибке, все еще получая «facebook»: {\ "status \": 403, \ "info \": \ "Запрещено: \"}. Я добавил все три варианта, которые вы упомянули. – Simer

+0

@AMT.Я получаю еще одну ошибку: {\ "Status \": {\ "facebook \": {\ "status \": 498, \ "info \": \ "Invalid Token: \"}}, \ "URIs \ ": [] – Simer

ответ

2

, пожалуйста, используйте это как на PHP

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); 
    } 
0

Маркер доступа может истекло. Повторно подключите соединение facebook или обновите соединение.

Точки доступа facebook имеют срок службы около двух часов. Для более долговечных веб-приложений, особенно на стороне сервера, необходимо создавать долгоживущие токены. Долгоживущие токены обычно длится около 60 дней.

UE имеет возможность обновлять токены facebook. После добавления соединения используйте «apiv2.unificationengine.com/v2/connection/add»; api, тогда вы должны позвонить «apiv2.unificationengine.com/v2/connection/refresh»; api, чтобы сделать долгоживущий токен долговечным.

+0

Спасибо. Но UE refresh connection api не помогает либо показывать статус 200 Ok, но не возвращать uri в ответ, как предполагается. Упомянутый в документации tht он вернет uri вместе с статусом успеха. Что делать? Любые дальнейшие указания? – Simer

+0

Кажется, что uri не будет возвращен в ответ, но UE просто обновляет токен и возвращает статус. –

+0

Я хотел бы сказать вам, что я использую API на своем локальном хосте. Возможно, причина в том, что он не работает и дает неверную ошибку токена каждый раз. – Simer

Смежные вопросы