GoogleカレンダーAPIを何年も使って、大成功を収めています。私はカールを使用してPHPからのリクエストを使用します。Google Contacts API PHPカールの連絡先を取得する
私は連絡先APIでこれを達成しようとしています。現時点では、私はOAuth2を通じてトークンを取得したユーザのjsonという連絡先リストを取得します。私はテストのために以下の単純なコードを使用しています。
$accessToken = "thebiglongaccesstoken1234";
$userMail = "[email protected]";
$requestURL ="https://www.google.com/m8/feeds/contacts/".$userMail."/full?v=3.0&alt=json";
$headers = array("Authorization: OAuth ".$accessToken);
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_URL, $requestURL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$responseArray = json_decode($response, TRUE);
var_dump($responseArray);
print '<br/>Response: <pre>' . print_r($responseArray, true) . '</pre>';
print 'curl Error: <pre>' . print_r(curl_error($ch), true) . '</pre>';
ブラウザで応答は次のとおりです。
NULL 応答: カールエラー:
私はこの要求をGoogleのOAuth 2.0プレイグラウンドで動作するように取得することができます。
最終的に私が望むのは、電子メールアドレスでユーザーの連絡先を検索して電話番号を取得するだけなので、ライブラリを使用したくありません。カレンダー用の関数ライブラリを作成しましたので、余分なものを追加したくありません。数行のコードしか必要ありません。
私はそれをあまりにも長く見過ごしてしまったと思います。どんな助けもありがたい。
UPDATE:
Iは(curl_getinfoを使用してこれを持っ)
アレイ ( [URL] =>https://www.google.com/m8/feeds/contacts/[email protected]/full?v=3.0&alt=json [CONTENT_TYPE] =>テキスト/ HTML;のcharset = UTF-8 [HTTP_CODE => 401 [ヘッダサイズ] => 457 [request_size] => 208 [FILETIME] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [TOTAL_TIME] => 0.1244 [namelookup_time] => 0.000837 [CONNECT_TIME] => 0.00306 [pretransfer_time] => 0.015428 [size_upload] => 0 [size_download] => 11875 [speed_download] => 95458 [speed_upload] => 0 【download_content_length] => -1 [upload_content_length] => 0 [starttransfer_time] => 0.123992 [redirect_time] => 0 [certinfoを] =>配列 ( )
)
出力を 'json_decode'に渡す前に出力できますか?連絡先APIは、一般的にプレーンテキストのエラーを返します。また、応答ステータスコードも役立ちます。 –
$ responseを使って何かをしようとすると、それを印刷するかvar_dumpを実行すると、401or 404のエラーメッセージと「リクエストにエラーがありました。それはすべてわかっています。 var_dump on curlエラーは、空の文字列を示します。 –