2017年7月23日日曜日

Bloggerへの自動投稿 Part-II

前の投稿の続き。Bloggerへの投稿自動化への道のり。

OAuth認証をWebブラウザで実行すれば、Bloggerへの投稿自動化は可能。その検証コードを書いてみた。

from __future__ import print_function
import sys
from googleapiclient import sample_tools

def get_blogger_service(argv):
    service, flags = sample_tools.init(
        argv, 'blogger', 'v3', __doc__, __file__,
        scope='https://www.googleapis.com/auth/blogger'
    )
    return service

def post_article(service, blog_id, contents):
    posts = service.posts()
    request = posts.insert(blogId=blog_id, body=contents)
    response = request.execute()
    return response

if __name__ == '__main__':
    service = get_blogger_service(sys.argv)
    body = {
        "kind": "blogger#post",
        "id": "俺様のblog id",
        "title": "posted via python",
        "content":"
hello world test
" } print(post_article(service, "俺様のblog id", body))

前提として、このスクリプトの置かれたディレクトリにclient_secrets.jsonという名前で認証鍵を置いておくことが必要。JSONを自分で書く必要はなく、Google Cloud Consoleからダウンロードできる。

上記コードを実行すると、初回はブラウザでGoogleの認証画面に飛ばされる。認証が通ったら、blogger.datというCredentialが格納されたファイルが作成され、以後トークン有効期間中は認証画面に飛ばされることなくBloggerへの投稿が自動化される。

トークンの有効期限を変更する方法がわからなかったので何も手を入れてないが、デフォルトでは24時間で期限切れとなる模様。そのときは再び認証画面が表示されることになる。

いずれにしても認証が必要な都度、人間の操作が要求されるのでこのままでは完全自動化はできない。SeleniumからPhantomJSを操作して無人化させればいいのかな、と思ってる。

0 件のコメント:

コメントを投稿