2

ファイルを Google ドライブにアップロードするときに問題が発生しました。ファイルをアップロードできません。誰でもいいので回答お願いします。

以下は、ファイルのアップロード中に発生したエラーです。

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "authError",
    "message": "Invalid Credentials",
    "locationType": "header",
    "location": "Authorization"
   }
  ],
  "code": 401,
  "message": "Invalid Credentials"
 }
}

アプリケーションをドライブ SDK に登録し、ドライブ SDK クライアント ID を使用しています。また、DBに保存された長寿命のリフレッシュトークンから毎回更新されたアクセストークンを使用しています。

コードは次のとおりです。

$fname = basename($updfile); // where $updfile is the file name with path
$turl = "https://www.googleapis.com/drive/v1/files";
$jsondata = '
{
    "title": "'.$fname.'",
    "mimeType":"application/zip",
    "description":"The mailchimp data export to google drive."
}';

$headers = 'Host: www.googleapis.com'."\r\n";
$headers .= 'Authorization: Bearer '.$access_token."\r\n";  // $access_token is token generating everytime from refresh token
$headers .= 'Content-Type: application/json'."\r\n";
$headers .='Content-Length: '.strlen($jsondata)."\r\n";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $turl);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsondata);
curl_setopt($ch, CURLOPT_HTTPHEADER, array($headers));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
curl_close($ch);

誰かがこれに関する解決策または提案を持っている場合は、元に戻す/回答してください。前もって感謝します。

4

3 に答える 3

0

PHP クライアント ライブラリを使用し、ファイルを Google ドライブにアップロードする方法を示す PHP スニペットのドキュメントを確認することをお勧めします。

https://developers.google.com/drive/v2/reference/files/insert

なんらかの理由で php_curl を使い続けて手動で HTTP リクエストを作成したい場合は、同じリクエストをOAuth 2.0 Playgroundで送信してみて、自分のものと比較してください。

于 2012-08-18T22:12:37.837 に答える
0

残りのクライアントでアクセス トークンを使用して、問題が PHP コードにあるのか、アクセス トークンにあるのかを確認してみてください。

Postman Rest Client for Chrome の使い方は非常に簡単です。

于 2012-08-20T06:41:32.753 に答える
0

あなたの URL が間違っていると思います:

$turl = "https://www.googleapis.com/drive/v1/files";

そのはず:

$turl = "https://www.googleapis.com/ upload/drive/v1/files";

v2 アップロード機能の使用に関するドキュメント (非常に薄い) を次に示します。v1を使用するよりも便利かもしれません:)

https://developers.google.com/drive/manage-uploads

于 2012-11-16T21:05:15.300 に答える