2017-01-06 5 views
2

私は統一エンジン#unificationengine APIを使用してFacebookにメッセージを投稿しています。 私はすべての手順を踏んで、コネクタを使用するための接続を作成しました。メッセージを送信するまで、すべてのカール要求は正常に機能しています。403ユニファイドエンジンAPIを介してFacebookのコネクタにメッセージを送信中に禁止されたエラー

そして今、私がメッセージを投稿するコネクタを使用するすべての接続を作成し、ユーザーを作成してからカール、接続リフレッシュ私は

{::200、「情報」「OK」「状態」}を取得していて Facebookで。

$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

感謝。

更新 私はカールの要求でこれらの3つのオプションを追加しました:

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($ ch、CURLOPT_SSL_VERIFYHOST、0); エラーが表示される場合は、curl_setopt($ ch、CURLOPT_VERBOSE、true)を追加します。表示されているエラーを確認してください。 –

+0

エラーは何も変わらず、\ "facebook \":\ "ステータス\":403、\ "情報\":\ "禁止:\"}。あなたが言いました3つのオプションをすべて追加しました。 – Simer

+0

@AMT。{\ "ステータス\":{\ "ステータス\":498 \ "情報\":\ "無効なトークン:\"}}、\ "URI \ ":[] – Simer

答えて

2

それは ますcurl_setopt($ chを、CURLOPT_SSL_VERIFYPEER、0)を追加することで機能するかどうかをチェックしてくださいすることができ、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アクセストークンの有効期間は約2時間です。長く生き残っているWebアプリケーション、特にサーバー側では、長寿命のトークンを生成する必要があります。長寿命のトークンは、一般に約60日間続きます。

UEには、Facebookのトークンをリフレッシュする機能があります。 "apiv2.unificationengine.com/v2/connection/add"を使用して接続を追加した後。 apiコールを呼び出すと、 "apiv2.unificationengine.com/v2/connection/refresh"と呼びます。短命のトークンを長生きさせるためのAPI。

+0

しかし、UEのリフレッシュ接続apiは、200 Okステータスを表示していても、それが応答してuriを返すのを助けてくれません。それは成功状況とともにuriを返すドキュメンテーションで言及されています。何をすべきか?それ以上のガイダンスは? – Simer

+0

URIに応答して返されることはありませんが、UEは単にトークンを更新してステータスを返します。 –

+0

ローカルホストでAPIを使用していることをここに伝えたいと思います。それが毎回無効なトークンエラーを出すことがあります。 – Simer

関連する問題