2016-10-03 3 views
1

Google 캘린더 API를 오랫동안 계속 사용해 왔습니다. curl을 사용하여 PHP에서 요청을 사용합니다.Google 연락처 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 응답 : 컬 오류 :이 요청이 구글의 OAuth 2.0 놀이터에서 일을 얻을 수

.

내가 결국하고 싶은 것은 전자 메일 주소로 사용자 연락처를 찾기 때문에 라이브러리를 사용하고 싶지 않습니다. 전화 번호를 얻으려고합니다. 나는 달력을위한 함수의 자신의 라이브러리를 만들었으므로 여분의 미사용 물건을 추가하고 싶지 않다. 몇 줄의 코드 만 있으면됩니다.

나는 방금 너무 오래 꼼짝 않고 바라 보았다고 생각한다. 어떤 도움을 주셔서 감사합니다. UPDATE

:

내가 curl_getinfo()를 사용하여 본을 가지고

배열 ( [URL] =>https://www.google.com/m8/feeds/contacts/[email protected]/full?v=3.0&alt=json [CONTENT_TYPE] = "text/html과; 문자셋 = UTF-8 [HTTP_CODE => 401 [header_size] => 457 [request_size] => 208 [FILETIME] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [TOTAL_TIME] => 0.1244,363,210 [namelookup_time] => 0.000837 [connect_time] => 0.00306 [pretransfer_time] => 0.015428 [size_upload] => 0 [size_download] => 11,875 [speed_download] => 95,458 [speed_upload] => 0 [download_content_length] => -1 [upload_content_length] => 0 [starttransfer_time] => 0.123992 [redirect_time] => 0 [certinfo] => 배열 ( )

)

+0

출력을'json_decode'에 전달하기 전에 출력 할 수 있습니까? 연락처 API는 일반적으로 일반 텍스트 오류를 ​​제공합니다. 또한 응답 상태 코드도 도움이 될 것입니다. –

+0

$ response를 사용하여 인쇄하거나 var_dump와 같은 작업을 시도하면 401or 404 오류 메시지와 함께 "깨진 로봇 Google 화면이 나타납니다. 요청에 오류가 있습니다. 그게 전부입니다." var_dump on curl 오류는 빈 문자열을 표시합니다. –

답변

2

401이라는 것을 보았을 때, 귀하의 인증 헤더가 정확하지 않다는 것을 알았습니다. 인증 헤더를 "Authorization: OAuth " . $accessToken 대신 "Authorization: Bearer " . $accessToken으로 변경하십시오.

여전히 401이 나오면 새 액세스 토큰을 받아야합니다.

+0

답변 해 주셔서 감사합니다. 여전히 똑같은 것을 시도했다. 그 중 하나가 좌절 문제. –