2012-05-10 17 views
0

Github v3 APIを使用してJSONをポストして、プロファイル(または他の呼び出し)を更新し、Githubから次の応答を取得しようとしています。Github API v3 POST with PHP

Array 
(
    [message] => Body should be a JSON Hash 
) 

私はAPIのドキュメントに関連するページを検討してきました:http://developer.github.com/v3/users/

そしてこのページ:http://developer.github.com/v3/#http-verbsここでPOST/PATCH

をカバーして、私は

を使用しているコードです
$data = array("bio" => "This is my bio"); 
$data_string = json_encode($data); 

function curl($url) { 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL,$url); 
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); 

    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,1); 
    curl_setopt($ch, CURLOPT_USERPWD, "USERNAME:PASSWORD"); 
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
    $content = curl_exec($ch); 
    curl_close($ch); 
    return $content; 
} 

$result = json_decode(curl('https://api.github.com/user'),true); 

私はを'POST''PATCH'として試しましたが、同じエラー応答があります。 どちらも。

誰かがAPIにデータを投稿するための正しい方向で私を指摘できますか?

答えて

1

global $data_stringのいずれかにするか、$data_string変数をcurl()に再利用する必要があります。

例:あなたはこのようにヘッダーを指定する必要があり

function curl($curl, $data) 
{ 
    $data_string = json_encode($data); 
    // your code here 
} 
+0

うわー...私は以上のことをどのように見ていませんでした!ありがとう。 –

0

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); 
+0

チップマシューをありがとう! –

関連する問題