さて、私はここでロープの終わりにいます。これを機能させるために、ほぼすべてのことを試しました。以前に Web ホストで Google OAUTH API 呼び出しを行ったことがあり、すべてうまく機能していますが、WAMP サーバーで同じスクリプトを使用すると、Google が cURL 投稿に応答しません。自分のサーバーと、誰かがセットアップしたこのサーバーに投稿して、cURL 投稿をテストしました。
http://www.newburghschools.org/testfolder/dump.php
そして、それはうまく機能します。ユーザーにアプリケーションを許可してもらった後に使用しているスクリプトは次のとおりです。
<?
//This script handles the response from google. If the user as authed the app, it will continue the process by formulating another URL request to Google to get the users information. If there was an error, it will simply redirect to index.
include_once($_SERVER['DOCUMENT_ROOT']."/../src/php/google/initialize.php");
if (!isset($_GET['error'])) {
//No error found, formulate next HTTP post request to get our auth token
//Set URL and get our data encoded for POST
$url = "https://accounts.google.com/o/oauth2/token";
$fields = array(
'code' => $_GET['code'],
'client_id' => $google['clientID'],
'client_secret' => $google['clientSecret'],
'redirect_uri' => "http://www.dealertec.com/scripts/php/google/reg_response.php",
'grant_type' => "authorization_code"
);
//$data = http_build_query($fields);
$data = "code=".$fields['code'].'&client_id='.$fields['client_id'].'&client_secret='.$fields['client_secret'].'&redirect_uri='.$fields['redirect_uri'].'&grant_type='.$fields['grant_type'];
echo $data."<br> /";
//Begin cURL function
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
echo $response;
curl_close($ch);
//Decode the JSON and use it to make a request for user information
print_r($response);
$response = json_decode($response, true);
/*if (!isset($response['error'])) {
//No error in response, procede with final step of acquiring users information
$apiURL = "https://www.googleapis.com/oauth2/v1/userinfo?access_token=".$response['access_token'];
$apiCall = curl_init($apiURL);
curl_setopt($apiCall, CURLOPT_RETURNTRANSFER, true);
curl_setopt($apiCall, CURLOPT_HEADER, false);
$apiResponse = curl_exec($apiCall);
$apiResponse = json_decode($apiResponse, true);
var_dump($apiResponse);
}else{
echo $response['error'];
}*/
}else{
header("LOCATION: http://www.dealertec.com/");
}
?>
Google の応答と思われるものをエコーアウトすると、取得できるのは単数形の「/」だけです。DNS IPを元に戻した後、Webホストでこれとまったく同じスクリプトを実行すると、正常に機能します。私は、Google が私の WAMP サーバーを気に入らず、それと通信することさえしないか、またはおそらく私の cURL 構成に問題があると考えています。私の WAMP サーバーで Google API を開発できないのはちょっとした迷惑ですが、誰かアイデアがあれば、大歓迎です。
ありがとう!