12
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

TwitterAPIで別アカウントから投稿する

概要

TwitterAPIを使い、自分のアカウントから自動でつぶやくのは簡単だけど、別アカウントからつぶやく方法が分からず調べた際のメモ1

前提

  • Pythonが利用可能な状況である(私はバージョン3.7.0)
  • TwitterのAPI申請が済んでいる

準備

パッケージのインストール

こちらを利用させてもらう(私はバージョン1.18.0)。

pip install twitter

アプリケーションの作成

これからメモする方法はおそらくPIN-based authorizationを利用しているので、callback_urlは使わなそう。ただ公式ドキュメントに以下のようにあるので、一応画像のようにCallback URLsも埋めておく2

The callback_url within the Twitter app settings is still required, even when using PIN-based auth.

image.png

Pythonスクリプトの準備

以下2つのファイルを同じディレクトリに準備。

config.py
app_name = "XXXXXXXXXX" # 上で作成したアプリケーション名
consumer_key = "XXXXXXXXXX" # アプリケーション管理画面のConsumer API Keys > API key
consumer_secret = "XXXXXXXXXX"  # アプリケーション管理画面のConsumer API Keys > API secret key
main.py
from twitter import *
from config import *
oauth_dance(app_name, consumer_key, consumer_secret, token_filename="./config.txt", open_browser=False)

Pythonスクリプトの実行

main.pyを実行すると、以下のようにURLが表示され、PINの入力を要求される。

Hi there! We're gonna get you all set up to use sample.
Opening: https://api.twitter.com/oauth/authorize?oauth_token=xxxxxxxxxx


Please go to the following URL, authorize the app, and copy the PIN:

https://api.twitter.com/oauth/authorize?oauth_token=xxxxxxxxxx
Please enter the PIN:

ブラウザでURLを開き、つぶやきたいアカウントでログインのうえPINを取得する3。PINを入力すると以下のメッセージが表示され、config.txtにtokenとtoken_secretが保存される。

That's it! Your authorization keys have been written to ./config.txt.

投稿

実際につぶやくPythonスクリプトは以下の通り。なお、準備の際と同じパッケージを利用している。

from twitter import *
from config import *
t = Twitter(
    auth=OAuth(
        'XXXXXXXXXX', # token(config.txtの1行目)
        'XXXXXXXXXX', # token_secret(config.txtの2行目)
        consumer_key,
        consumer_secret,
    )
)
t.statuses.update(status="message")

最終行の"message"を任意の文字列に変えれば、好きなようにつぶやけるはず。


  1. APIの申請時に利用目的など記載しているはずなので、その範囲を超える使い方は当然NG。自己責任で。 

  2. 使われないはずなので何でもいいが、私はとりあえず自分のgithubのページのURLにした。 

  3. 通常は自分のアプリケーションのユーザーにログインしてもらうのだろうが、動作確認は自分のサブアカで行った。 

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
12
Help us understand the problem. What are the problem?