- ラズベリーパイが好きな人!
- pythonに興味がある人・使っている人!
- Twitter厨!
こんにちは.けんゆーです(@kenyu0501_)
ラズベリーパイからツイッターにツイートするときには,APIを使って簡単にできます.
最近は,審査がちょっと厳しくなってAPIキーの取得(アクセストークンなど)がなかなかハードルが高いですが,,,
そこで今回はちょっと手こずったことを書いて行きます.
Pythonプログラム
プログラム自体は超簡単です.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | from requests_oauthlib import OAuth1Session CK = *********** CS = *********** AT = *********** AS = *********** url = "https://api.twitter.com/1.1/statuses/uopdata.json" tw = {"status":"つながった(^^)わーいわーい from らずべりーぱい"} twitter = OAuth1Session(CK,CS,AT,AS) req = twitter.post(url, tw = tw) if req.status_code == 200: print("OK") else: print("Error: %d" % req.status_code) |
(参考:PythonでTwitterAPIにアクセスという記事です)
プログラム中のCK,CS,AT,ASはそれぞれ,
- Consumer Key
- Consumer Secret
- Access Token
- Accesss Token Secert
です.TwitterAPIの申請は各自で行ってください.
出力結果
おいら達が山口大学で運営している「エンジニアリング交流サロン」のTwitterアカウントに飛ばします.
つながった(^^)わーいわーい from らずべりーぱい
— エンジニアリング交流サロン (@engcomsalon) September 17, 2018
こんな感じで速攻でツイートされます.これを出力するのに少々戸惑いました.
エラーが出てきた!!
ラズベリーパイ上のスクリプトでPythonを動かしているのですが,
401エラー!!笑
認証がきちんと取れていないようです.
修正したこと
まずはラズベリーパイの端末でTwitterにログインできているのかを確認します.
そのあとに,
ラズベリーパイ自体の設定として,日にちを現在時刻に設定し直します.
1 | pi@raspberrypi:~ $ sudo data -s "2018/09/17 15:49:00" |
以上のコードで日付を現在時刻に設定したらきちんと繋がりました〜^^
では