Blogger API Explorerではpostに成功する

  • 投稿日:
  • by
  • カテゴリ:

どうなってんですかね。

かすかな記憶では、スクリプトを書いたときにはAPI ExplorerからBloggerのAPIを試すことができなかった気がします。

oAuthのボタンが死んでたか、ベアラーがバグってたか、そもそもBloggerAPI v3に対応していなかったか忘れましたが。

昨日挙げたリンク先の回答でも、コードが古いと指摘されています。

python - Oauth2 lib cannot import name 'run' - Stack Overflow

I'm strongly suggesting looking for a more recent example of the current oauth2client implementation.

しかしながら、Googleがサンプルやドキュメントをいい感じに更新しないのが悪い気がしました。

例えばいかにPythonライブラリの詳しいページがあるのですが、具体的なサンプルがありません。

OAuth 2.0 - API Client Library for Python - Google Developers

OAuthは実装間違えると何のための認証かわからなくなるんで、具体的なサンプルがないのはヤバイ気がしています。

どうせコピペして使う程度の用途では、どうでもいいのかもしれませんが。

 

さてBloggerへのpost成功時に、API Explorerでのinsert()のリクエストは以下のように表示されました。

POST https://www.googleapis.com/blogger/v3/blogs/{blogID}/posts?fetchBody=false&fetchImages=false&isDraft=false&key={YOUR_API_KEY}

いっぽう手もとのスクリプトのコールスタックはいかのような感じ。

    raise HttpError(resp, content, uri=self.uri)
googleapiclient.errors.HttpError: <HttpError 403 when requesting https://www.googleapis.com/blogger/v3/blogs/{blogID}/posts?alt=json returned "We're sorry, but you don't have permission to access this resource.">

よくわからないんですが、googleapiclientの実装が違うんじゃないですか?

すくなくともAPI Explorerのものとは違う動作をしているような気がしてきました。

list()などは動作しているんでねぇ。

↓↓↓このサンプル書いた人も、insert()できなかっただけだったりして(笑

google-api-python-client-blogger.py at master · google-google-api-python-client · GitHub

 

ベタにAPI叩いて、ヘッダにベアラをprintで指定した方が簡単に動きそうな気さえしてきましたよ。