今日のゴール
TwitterのAPIを使い、タイムラインに投稿する。
前提
Twitter APIを利用するには、Twitterのアカウントが必要です。
持っていない場合は作成してください。
また、携帯電話の番号をアカウントに登録する必要があります。
ログイン後、以下から登録します。
https://twitter.com/settings/add_phone
※ 2015年6月25日時点での方法です。
1、アプリケーションの登録
まず、アプリケーション登録をする必要があります。
https://apps.twitter.com/にアクセスします。
(ログインしていない場合は、Twitterのアカウントでログインしてください。)
「Create New App」ボタンを押します。
Create an applicationのページに遷移します。
以下の項目の入力が求められます。
● Name * : アプリケーションの名前
● Description * : アプリケーションの説明
● Website * : アプリケーションのWEBサイト
● Callback URL : 認証後のコールバック先のURL
今回は、具体的に以下の様に入力しまた。
● Name * : 「Raspi My App」
● Description * : 「RaspiのTwitterアプリケーションです。」
● Website * : 「https://twitter.com/●●●●」(自分のTwitterのアカウントページ)
● Callback URL : 「」(ブランク)
NameやDescriptionはお好みで。
Websiteはとりあえず、自分のTwitterのアカウントページにでもしておけばよいでしょう。
Callback URLはブラウザアプリケーションで作る場合などは必要ですが、とりあえず、今回はブランクのままで登録します。
利用規約に同意にチェックをして「Create your Twitter application」ボタンを押します。
2、アクセストークンの作成
APIを使うために以下の4つの値を取得します。
- Consumer Key (API Key)
- Consumer Secret (API Secret)
- Access Token
- Access Token Secret
前の手順で「Create your Twitter application」ボタンを押し、アプリケーションが作成されると、アプリケーションの管理のページに遷移します。
このページの「Keys and Access Tokens」というタブをクリックします。
「Application Settings」の「Consumer Key (API Key)」と「Consumer Secret (API Secret)」を控えておきます。
「Your Access Token」の「Create My access token」ボタンを押すと、「Access Token」と「Access Token Secret」が生成されるので、控えておきます。
ここで、得られた、「Consumer Key (API Key)」「Consumer Secret (API Secret)」「Create My access token」「Access Token」の4つの値は、次の手順で使用します。
3、pythonで投稿してみる
「tweepy」というpython用のTwitterライブラリを使って、手軽にやってみます。
まずは、下記コマンドを順に打って、「tweepy」ライブラリをインストールします。
$ cd /tmp # setuptoolsのインストール $ sudo wget http://peak.telecommunity.com/dist/ez_setup.py $ sudo python ez_setup.py # pipのインストール $ sudo wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py $ sudo python get-pip.py # tweepyのインストール $ sudo git clone https://github.com/tweepy/tweepy.git $ cd tweepy $ sudo python setup.py install
※ ここでは、「tweepy」をインストールする前に、「setuptools」と「pip」をインストールしています。pipはpythonライブラリのパッケージ管理するやつです。
これで準備完了です。適当なディレクトリに「tweet_pi.py」という名前でファイルを作り、以下の様に編集します。
$ cd ~ $ sudo vi tweet_pi.py
#!/usr/local/bin/python # -*- coding: utf-8 -*- import tweepy CONSUMER_KEY = 'xxxxxxxxxxxxxxxx' CONSUMER_SECRET = 'xxxxxxxxxxxxxxxx' ACCESS_TOKEN = 'xxxxxxxxxxxxxxxx' ACCESS_TOKEN_SECRET = 'xxxxxxxxxxxxxxxx' auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) auth.secure = True auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET) api = tweepy.API(auth) api.update_status(status='Hello, world!')
「xxxxxxxxxxxxxxxx」のところは、前の手順で控えた値にそれぞれ置き換えてください。
下記コマンドで実行すると、「Hello, world!」という文字が投稿されます。
$ sudo python tweet_pi.py
タイムラインを取得したり、検索したりできますので、APIリファレンスを参考に色々と試してみてください。
センサーと連携したりして活用すると面白いと思います。