Make.

Twitterでつぶやく

Pocket

Pythonプログラムから、Twitterでつぶやきます。
プログラムからTwitterでつぶやくには、アプリケーションの登録とキーが必要になります。


Twitterの設定

アプリケーションからTwitterでつぶやくためには、以下の4つが必要になります。そのため、最初にTwitterの開発者用ページから、取得を行います。
Consumer key(API Key)
Consumer Secret(API Secret)
Access token
Access Token Secret

まずは、Twitterの開発者向けサイトへアクセスし、Twitterアカウントとパスワードでログインします。
https://dev.twitter.com/apps/new

アプリケーションの登録画面が表示されますので以下の項目を入力します。
・Name(アプリ名)
・Description(アプリの説明)
・Website(自分のサイト・ブログのURL)
・Callback URL(自分のサイト・ブログのURL)
規約同意にチェック入れて、[Create your Twitter application]クリックします。

00056
00057

アプリケーション追加後に、「Keys and Access Token」の画面からConsumer key(API Key)とConsumer Secret(API Secret)が確認出来ます。

00060

ツイートするために、アプリケーションのアクセス権限を変更します。
「Permissions」のタブをクリックします。
Twitterでつぶやくために、Access権限を「Read and Write」にします。
「Update settings」ボタンをクリックします。

00059

アクセス権限の変更を行ったら、Access Tokenを取得します。
「Keys and Access Tokens」のタブを開き、Access Tokenを取得します。
画面の最下部に「Create my access token」ボタンがあるのでクリックします。
Tokenの作成が完了すると、Access tokenとAccess Token Secretが表示されます。

00061


Pythonプログラムからつぶやく

Pythonプログラムから、Twitterでつぶやきます。

Twitterでの認証を行うために、以下のライブラリをインストールします。

$ pip install requests
$ pip install requests-oauthlib

以下のプログラム「tweet.py」に、先ほど取得したConsumer key(API Key)、Consumer Secret(API Secret)、Access token、Access Token Secretを設定して、つぶやくことができます。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from requests_oauthlib import OAuth1Session

#CK = 'XXXXXXXXXXXXXXXXXXXXXX'                             # Consumer Key
#CS = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'         # Consumer Secret
#AT = 'XXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' # Access Token
#AS = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'         # Accesss Token Secert

# ツイート投稿用のURL
URL = "https://api.twitter.com/1.1/statuses/update.json"

def tweet(text):
    #Tweetを作成
    params = {"status": text}

    # OAuth認証して、POSTで投稿
    twitter = OAuth1Session(CK, CS, AT, AS)
    req = twitter.post(URL, params = params)

    #レスポンスコードを返す
    return req.status_code

if __name__ == '__main__':
    # ツイート
    print tweet("Hello World!!!!")
Pocket