0
PHPを使用してGoogleドライブAPIを実装しようとしていました。ここに私の目標は、ユーザー GoogleドライブAPI - 無効な許可:不正なリクエスト
- 要求は、ユーザーを認証し、認証コード
- からのファイルの詳細を取得するためにアクセストークンを取得し、設定しますフォルダ
ここでのサンプルコード、
PHP
public $google_client;
function __construct(){
$this->google_client = new Google_Client();
$this->google_client->setApplicationName(APPLICATION_NAME);
$this->google_client->setScopes(SCOPES);
$this->google_client->setAuthConfig(CLIENT_SECRET_PATH);
$this->google_client->setAccessType('offline');
}
function get_drive_auth_url(){
$folder_id = trim($_POST['folder_id']) || null;
$auth_code = trim($_POST['auth_code']) || null;
if(!$folder_id || !$auth_code){
$auth_url = $this->google_client->createAuthUrl();
$response = array('type' => true, 'message' => 'success', 'data' => $auth_url);
echo json_encode($response);
exit();
} else {
$access_token = $this->google_client->fetchAccessTokenWithAuthCode($auth_code);
print_r($access_token);
exit();
}
}
JS
var folder_id = jQuery(this).val() || '';
if(!folder_id){
alert('Please provide a valid folder id.');
return false;
}
// AJAX Request to fetch the auth url
jQuery.ajax({
url: woocommerce_params.ajax_url,
method: 'POST',
dataType: 'json',
data: {
action: 'get_drive_auth_url'
},
success:function(response) {
var url = response.data || '';
if(!url){
return false;
}
window.open(url, 'Google Drive Authorization', 'width=600,height=350', true);
var auth_code = prompt('Please provide the authorization code.');
if(auth_code){
//AJAX Request to pass the folder id and auth code
jQuery.ajax({
url: woocommerce_params.ajax_url,
method: 'POST',
dataType: 'json',
data: {
action: 'get_drive_auth_url',
auth_code: auth_code,
folder_id: folder_id
},
success:function(res) {
console.log(res);
},
error: function(errorThrown){ console.log(errorThrown);
alert('Error: ' + errorThrown.status + ' ' + errorThrown.statusText);
}
});
}
},
error: function(errorThrown){
alert('Error: ' + errorThrown.status + ' ' + errorThrown.statusText);
}
});
エラー
Array( [error] => invalid_grant [error_description] => Bad Request)
あなたの助けに感謝!