【Python】TwitterAPIでウェルカムメッセージを実装する方法

この記事では、PythonでTwitterAPIを利用してウェルカムメッセージを設定する方法を説明します。

PHPでウェルカムメッセージを設定する方法も公開しています。

【PHP】Twitter APIでウェルカムメッセージを実装する方法
【PHP】Twitter APIでウェルカムメッセージを実装する方法

PHPでTwitterAPIを利用してウェルカムメッセージを設定する方法を説明します。

記事を見る

「プログラミングとかめんどいからウェルカムメッセージだけ使いたい」という人は私がツールを公開していますのでそちらをぜひご利用ください。

ウェール
ウェール

TwitterのDMウェルカムメッセージを簡単に作成できます。

使ってみる
目次
  1. ウェルカムメッセージとは?
  2. ウェルカムメッセージの設定方法
  3. 設定済みのウェルカムメッセージを確認する
  4. ウェルカムメッセージの削除

ウェルカムメッセージとは?

Twitterにはダイレクトメッセージがありますが、実はその中に通常のTwitterのサイトやアプリでは利用できない隠し機能が存在します。それがウェルカムメッセージです。
ウェルカムメッセージとは、DMが新規に開かれたときに、開いた人に対して事前に設定したメッセージを送信できる機能です。

ウェルカムメッセージはTwitterAPIを利用して設定することができます。
この記事ではPythonを使ってプログラムを書いていきます。

TwitterAPIを利用するためには開発者登録が必要です。

まだ開発者登録をしていない人は以下を参考に開発者申請を行ってください。

Twitter開発者アカウント(Twitter デベロッパー アカウント)の申請方法
Twitter開発者アカウント(Twitter デベロッパー アカウント)の申請方法

TwitterAPIを利用するために必要な「Twitter開発者アカウント」(Twitter Developer Account)の取得方法や申請に通過しやすくなる申請文の書き方などを説明します。

記事を見る

ウェルカムメッセージの設定方法

ウェルカムメッセージを設定するためには以下の画像のようにアプリケーションの権限をRead + Write + Direct Messagesにする必要があります。

ライブラリのインストール

pip install requests_oauthlib

コマンドが存在しないと言われた場合

py -m pip install requests_oauthlib

ウェルカムメッセージを使うためのコード

ウェルカムメッセージを実際に使用する場合はウェルカムメッセージの設定と反映の2つを実行する必要があります。

ここでは、設定、反映のソースコードはもちろん、一回で2つとも実行できるソースコードも紹介します。

ウェルカムメッセージを設定

import json
from requests_oauthlib import OAuth1Session


# コンシューマーキーなどをいれてください
CK = "ここにコンシューマーキーを入力" 
CS = "ここにコンシューマーシークレットを入力"
AT = "ここにアクセストークンを入力"
ATS = "ここにアクセストークンシークレットを入力"

text = 'ここにメッセージを入力'

twitter = OAuth1Session(CK, CS, AT, ATS)
url = 'https://api.twitter.com/1.1/direct_messages/welcome_messages/new.json'
payload = {
  "welcome_message" : {
    "message_data": {
      "text": text,
    }
  }
}
payload = json.dumps(payload)
res = twitter.post(url, data=payload)
data = json.loads(res.text)
print('ウェルカムメッセージID:',data['welcome_message']['id'])

実行結果の例

ウェルカムメッセージID: 1399697206228045831

次に出てくるソースコード内の「ウェルカムメッセージID」とは、このIDのことです。
ここに載せているIDではなく、自分の環境で実行して出てきたIDです。

ウェルカムメッセージを反映

import json
from requests_oauthlib import OAuth1Session


# コンシューマーキーなどをいれてください
CK = "ここにコンシューマーキーを入力" 
CS = "ここにコンシューマーシークレットを入力"
AT = "ここにアクセストークンを入力"
ATS = "ここにアクセストークンシークレットを入力"

id = 'ここにウェルカムメッセージIDを入力'

twitter = OAuth1Session(CK, CS, AT, ATS
url = 'https://api.twitter.com/1.1/direct_messages/welcome_messages/rules/new.json'
payload = {
  "welcome_message_rule": {
    "welcome_message_id": id
  }
}
payload = json.dumps(payload)
res = twitter.post(url, data=payload)
data = json.loads(res.text)
print(data)

        

設定と反映を一回でやる

import json
from requests_oauthlib import OAuth1Session


# コンシューマーキーなどをいれてください
CK = "ここにコンシューマーキーを入力" 
CS = "ここにコンシューマーシークレットを入力"
AT = "ここにアクセストークンを入力"
ATS = "ここにアクセストークンシークレットを入力"

text = 'ここにメッセージを入力'

twitter = OAuth1Session(CK, CS, AT, ATS)
url = 'https://api.twitter.com/1.1/direct_messages/welcome_messages/new.json'
payload = {
  "welcome_message" : {
    "message_data": {
      "text": text,
    }
  }
}
payload = json.dumps(payload)
res = twitter.post(url, data=payload)
data = json.loads(res.text)

print('ウェルカムメッセージID:',data['welcome_message']['id'])
msgid = data['welcome_message']['id']
url = 'https://api.twitter.com/1.1/direct_messages/welcome_messages/rules/new.json'
payload ={
  "welcome_message_rule": {
    "welcome_message_id": msgid
  }
}
payload = json.dumps(payload)
res = twitter.post(url, data=payload)
data = json.loads(res.text)
print(data)
        

設定済みのウェルカムメッセージを確認する

以下を実行すると設定済みのウェルカムメッセージを確認できます。

import json
from requests_oauthlib import OAuth1Session


# コンシューマーキーなどをいれてください
CK = "ここにコンシューマーキーを入力" 
CS = "ここにコンシューマーシークレットを入力"
AT = "ここにアクセストークンを入力"
ATS = "ここにアクセストークンシークレットを入力"
twitter = OAuth1Session(CK, CS, AT, ATS)
url = 'https://api.twitter.com/1.1/direct_messages/welcome_messages/list.json'
res = twitter.get(url)
data = json.loads(res.text)
print(data)
        

実行結果の例

{'welcome_messages': [{'id': '1399672018715365385', 'created_timestamp': '1622542788567', 
'message_data': {'text': 'Hello!', 'entities': ...(以降も続く)

idのところにある数字がウェルカムメッセージIDです。次に説明するウェルカムメッセージの削除などではこれを使用します。

ウェルカムメッセージの削除

ウェルカムメッセージを削除するコードです。

import json
from requests_oauthlib import OAuth1Session


# コンシューマーキーなどをいれてください
CK = "ここにコンシューマーキーを入力" 
CS = "ここにコンシューマーシークレットを入力"
AT = "ここにアクセストークンを入力"
ATS = "ここにアクセストークンシークレットを入力"
twitter = OAuth1Session(CK, CS, AT, ATS)

id = 'ここにウェルカムメッセージIDを入力'

url = 'https://api.twitter.com/1.1/direct_messages/welcome_messages/destroy.json?id='+id
res = twitter.delete(url)
        

終わりに

PythonでTwitterAPIを利用してウェルカムメッセージを設定する方法について解説しました。皆様のお役に立てれば幸いです。