2017-01-16 3 views
0

私はこの問題に取り組んできましたが、stackoverflowでたくさんの回答を読んだことがありますが、それでもわかりません。LinkedIn REST API - 会社シェア| JSONまたはXMLを使用すると両方とも失敗します

REST APIを使用してLinkedInの会社ページに投稿したいと考えています。 私はすでにOAuth2 API($ secret_token)でトークンを取得していますが、ユーザーに管理者権限($ company_ID)を持つ会社IDも持っています。問題なくcURLを使用して複数の「GET」を実行しました。

コンソール(https://apigee.com/console/linkedin)を使用して、私がしたいことができます。しかし、いったんPHPに変換されると、それを動作させることはできません。

// USING XML POST 
$postfields = ' 
<xml> 
    <share> 
     <visibility> 
      <code>anyone</code> 
     </visibility> 
     <comment>There are a lot of great career opportunities here!</comment> 
    </share> 
</xml>'; 

$headers = array('header' => 
    "Authorization: Bearer " .$secret_token. "\r\n". 
    'Content-Length: ' . strlen($postfields). "\r\n". 
    'Content-Type: text/xml'. "\r\n" 
); 

$ch = curl_init(); 
curl_setopt_array($ch, array(
    CURLOPT_URL => "https://api.linkedin.com/v1/companies/".$company_id."/shares?format=json", 
    CURLOPT_RETURNTRANSFER => true, 
    CURLOPT_SSL_VERIFYPEER => false, 
    CURLOPT_SSL_VERIFYHOST => 2, 
    CURLOPT_HEADER => false, 
    CURLOPT_POST => 1, 
    CURLOPT_HTTPHEADER => $headers, 
    CURLOPT_POSTFIELDS => $postfields 
)); 
$result = curl_exec($ch); 
curl_close($ch); 
$result = json_decode($result, true); 
print_r($result); 

このディスプレイ:エラー:予期しない要素を共有ドキュメントを解析できませんでした

アレイ(【のerrorCode] => 0 [メッセージ] =>ここ

は私のコードです。 CDATA [requestId => IWMFAAIY5E [状態] => 400 [タイムスタンプ] => 1484563199667)

申し分なく、今)の両方がLinkedIn REST APIによって許可されているので(代わりJSONと同じことを行う:

// USING JSON POST 
$postfields = '{"visibility": { "code": "anyone" }, "comment": "There are a lot of great career opportunities here!"}'; 

$headers = array('header' => 
    "Authorization: Bearer " .$secret_token. "\r\n". 
    'Content-Length: ' . strlen($postfields). "\r\n". 
    'Content-Type: application/json'. "\r\n". 
    "x-li-format: json". "\r\n" 
); 

$ch = curl_init(); 
curl_setopt_array($ch, array(
    CURLOPT_URL => "https://api.linkedin.com/v1/companies/".$company_id."/shares?format=json", 
    CURLOPT_RETURNTRANSFER => true, 
    CURLOPT_SSL_VERIFYPEER => false, 
    CURLOPT_SSL_VERIFYHOST => 2, 
    CURLOPT_HEADER => false, 
    CURLOPT_POST => 1, 
    CURLOPT_HTTPHEADER => $headers, 
    CURLOPT_POSTFIELDS => $postfields 
)); 
$result = curl_exec($ch); 
curl_close($ch); 
$result = json_decode($result, true); 
print_r($result); 

今表示:

アレイ(【のerrorCode] => 0 [メッセージ] => JSON本体を解析できませんでした:予期しない文字( 'C'(コード67)):有効な値を予想します(数値、文字列、配列、オブジェクト、 '真'、 '偽'または 'null')[ソース:[email protected]; HIRNMKAQTC [ステータス] => 400 [タイムスタンプ] => 1484564171949)

アイデアはありますか?あなたの$ヘッダ変数で

+0

これまで無回答 - 。誰が手掛かりを持っていないか、私の質問から欠落しているいくつかの重要な情報があるので、それがあります? – Andrew

+0

は、おそらく次のとおりです。 <?xml version = "1.0" encoding = "UTF-8"> –

答えて

1

、エンディングを削除「\ rを\ n」は

$headers = array('header' => 
    "Authorization: Bearer " .$secret_token. "\r\n". 
    'Content-Length: ' . strlen($postfields). "\r\n". 
    'Content-Type: application/json'. "\r\n". 
    "x-li-format: json" 
); 
関連する問題