1

私の最終的な目的は、ユーザーが個人アカウントの Google ドライブの Word ドキュメントにコンテンツをアップロードできるようにすることです。

https://developers.google.com/drive/v2/reference/files/insert#examplesで提供されている PHP の例を使用しています。単純なテキスト ファイルをアップロードする場合は、問題なく動作します。

次に (mimetype application/msword でほぼ 8 時間を無駄にした後。なぜドキュメントでそのような一般的な詳細を簡単に見つけられないのかわかりません)。mimetype をapplication/vnd.google-apps.documentに空のデータで変更し、それは絶対にうまくいきました。

次に、Google ドライブの Web インターフェイスでドキュメント ファイルを作成し、それを自分のマシンにエクスポートしました。docx として保存されました。次に、例では、このファイルがデータのソースとして使用され、Error calling POST https://www.googleapis.com/upload/drive/v2/files?uploadType=multipart : (400) Bad Request error が発生し続けます。

エラー メッセージには、リクエストの何が問題なのかについての詳細は示されていません。

[responseBody:protected] => {
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "badRequest",
        "message": "Bad Request"
      }
    ],
    "code": 400,
    "message": "Bad Request"
  }
}
4

1 に答える 1

0

おそらく、Word ファイルのコンテンツを文字列として $request['content'] に入れる必要があります。

.DOCX の場合、適切な MIME タイプは次のとおりです。

application/vnd.openxmlformats-officedocument.wordprocessingml.document

参考:MSDN ライブラリ

では、それを生成する要求ではなく、応答によって何が問題であるかをどのように判断すればよいでしょうか?

おそらく、代わりに「HTTP400 - がらくたが機能していません」と書いたかもしれませんが、

ほぼ同量の情報を提供します。

HTTP Response-Code #400 は一般的に、

HTTP リクエストの形式が正しくない (たとえば、パラメーターが欠落している、適切にエスケープされていないなど)。

^ ...そして、これは確かに正しい答えです -サンプル応答によると.

これがまさに、提供された情報だけでは正確な回答を提供できない理由です。また、API の応答にもう少し詳細が含まれていることを望みます (特に時折ファイル検証エラーが発生した場合)。

ベスト プラクティスは、非常に単純な作業バージョンから開始し、次に複雑さを追加することです。

問題の確認/解決をご希望の場合は、サンプル リクエストを追加してください。

リクエストが明らかに不正な場合、コードがどのように見えるかは問題ではありません。

通常、私は Web スクリプトをサービスとして提供していますが、現在はリソースが不足しています。

于 2013-01-25T04:50:20.690 に答える