2017-01-06 30 views
2

我正在使用統一引擎#unificationengine API在Facebook上發佈消息。 我遵循了所有步驟並創建了使用連接器的連接。所有curl請求都能正常工作,直到發送消息。 在從創建用戶,創建連接每個捲曲,連接刷新我得到403通過Unification Engine API向Facebook連接器發送消息時出現禁止的錯誤

{「狀態」 200,「信息」:「OK」}

現在我想用連接器發佈消息在臉書上。 下面是我的捲曲代碼:

$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

感謝。

更新 我加入捲曲請求這三個選項:

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_VERIFYPEER,0); curl_setopt($ ch,CURLOPT_SSL_VERIFYHOST,0); 如果它仍然顯示錯誤,請添加curl_setopt($ ch,CURLOPT_VERBOSE,true);並檢查它顯示的錯誤。 –

+0

錯誤沒有任何變化,仍然得到\「Facebook \」:{\「status \」:403,\「info \」:\「Forbidden:\」}。我添加了你提到的所有三個選項。 – 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刷新連接api並沒有幫助它顯示200 Ok狀態,但沒有返回uri的響應,因爲它假設是。在文件中提到,它將返回uri以及成功狀態。該怎麼辦?任何進一步的指導 – Simer

+0

似乎uri不會作爲迴應返回,但UE只刷新令牌並返回狀態。 –

+0

我想在這裏告訴你,我在本地主機上使用API​​。可能是因爲它不工作並且每次都給出無效的令牌錯誤。 – Simer

相關問題