2018 年 3 月 27 日以降、API キー アクセスを使用しているときに失敗する原因となる、 Google ドライブ APIと特にエクスポート機能で最近変更されたことはありますか?
教育グループ向けに毎日のコース メールを作成して送信する Windows サービスがあります。各メールのソース コンテンツは Google ドライブに Google ドキュメントとして保存されるため、教員はコースのコンテンツを簡単に更新できます。
これは過去 1 年間問題なく機能していましたが、2018 年 3 月 27 日に突然機能しなくなりました。それ以来、ファイルの詳細を取得できます。
_googleDriveHtmlContent.LoadFile(
fileId
);
しかし、内容ではありません。ファイルをExport
HTML として取得すると、すぐにハンドラーDownloadStatus.Failed
から を取得します。ProgressChanged
var request = _driveService.Files.Export(
fileId,
"text/html"
);
UI のないサービスであるため、セキュリティのために OAuth ではなく API キーを使用しています。これを行うには、ファイル フォルダーをパブリックにアクセスできるようにマークする必要があります。具体的には、「リンクを使用して誰でもアクセス可能」を使用しています。これはうまく機能しています。
NuGet を使用して最新の API v3 ライブラリに更新しましたが、動作に変更はありません。
Google の API Explorer を使用すると、同様の動作が見られます。
get
エンドポイント
で API Explorer を使用して、ファイルを正常に取得できます。https://developers.google.com/drive/v3/reference/files/get
- ファイル ID
1AIuGhzXsNuhhi0PMA1pblh0l5CCDaa1nPj8t_dasi_c
- 認証: API キー (「デモ API キー」を使用)
しかし、export
エンドポイントでは、内部エラー (500)が発生します-
https://developers.google.com/drive/v3/reference/files/export
- ファイル ID
1AIuGhzXsNuhhi0PMA1pblh0l5CCDaa1nPj8t_dasi_c
- mime タイプ:
text/html
- 認証: API キー (「デモ API キー」を使用)
API Explorer で認証を OAuth 2.0 に変更し、アクセスを承認すると、ファイル HTML で成功した 200 の結果が返されます。ただし、UI のないサービスを介して API にアクセスしているため、それができません。