私はphpに基づいてブラウザベースのアプリケーションを作成しています。Google_Client()->> createAuthUrl()から取得したURLを使用して、ユーザーをGoogleのアクセス許可ページに送信します。
次に、ユーザーは私が要求したアクセス許可を許可し、私のサイトにリダイレクトされます。そこで、クエリパラメーター(コード)を使用してアクセストークンを生成します。アクセストークンを設定した後、いくつかのgoogleドライブAPI呼び出しを試みましたが、どのapi呼び出しを使用しようとしても、呼び出しは常に失敗します(401)無効なクレデンシャル。
グーグルが使用している残りのURLを調べると、常に次のURLが返されることがわかります。
{
"error": {
"errors": [
{
"domain": "global",
"reason": "internalError",
"message": "Internal Error"
}
],
"code": 500,
"message": "Internal Error"
}
}
これが私のコードです:
require_once 'src/Google_Client.php';
require_once 'src/contrib/Google_DriveService.php';
require_once 'src/contrib/Google_Oauth2Service.php';
class Google_drive
{
var $array_values = array();
var $CI;
var $client;
public function __construct()
{
$this->CI = & get_instance();
$client = new Google_Client();
// Get your credentials from the APIs Console
$client->setClientId('12340XXXXX26.apps.googleusercontent.com');
$client->setClientSecret('4vJU1RVcXXXXXX71levO5wF-');
$client->setRedirectUri('http://test.elemental.co.za/drm/requestlists/google_drive');
$client->setScopes(array('https://www.googleapis.com/auth/drive','https://www.googleapis.com/auth/drive.file'));
$service = new Google_DriveService($client);
if (!$this->CI->input->get('code')) // (this is the query string parameter ?code=
{
redirect($client->createAuthUrl());
}
//Request authorization
$authCode = $this->CI->input->get('code'); // (this is the query string parameter ?code=
// Exchange authorization code for access token
$accessToken = $client->authenticate($authCode);
$client->setAccessToken($accessToken);
$files = $service->files->list(array())
}
}