前回は、python使ってDMMから商品情報取得しました。
その手順はこちらの記事で紹介しています。
手動で商品リンクを取得してTwitterに貼り付けた時にどのようになるのか確認した記事はこちらです。
今回は、pythonを使って取得したDMMデータから、Twitterに投稿する文章を作成して、実際に投稿してみます。こっち側の処理の解説になります。

前回、DMMのデータはjsondata変数に格納しています。今回はそれを加工してツイートを行います。
python使ってTwitterに投稿する
REST APIで取得したデータからTwitterに投稿するデータを抽出します。今回は、URLとタイトルで文章を作って、タグをカテゴリ名にして投稿します。
取得したデータは、jsondataに格納されているので、jsondata[][][]という形で取得します。
- DMMから取得したデータから投稿する情報を抽出する
- 投稿するメッセージ作成
- Twitterのクライアントに接続
- Twitterに投稿する
DMMから取得したデータから投稿する情報を抽出
Twitterに投稿する文章はURLとタイトルで作成して、カテゴリ名をタグとして付与して投稿してみます。
タイトルの抽出
同様に、以下の指定でタイトルを取得します。
jsondata['result']['items'][0]['title']
pprintで結果を出力すると次のようになります。
pprint(jsondata['result']['items'][0]['title'])
'【受注生産】ミュージカル『刀剣乱舞』 江 おん すていじ 〜新編 里見八犬伝〜 ランダムすていじカード(全24種)'
affiliateURLの抽出
itemsが複数のデータを持っているので、一つ目のaffiliateURLは次のように指定します。
jsondata['result']['items'][0]['affiliateURL']
pprintで結果を出力すると次のようになります。
pprint(jsondata['result']['items'][0]['affiliateURL'])
'https://al.dmm.com/?lurl=https%3A%2F%2Fwww.dmm.com%2Fmono%2Fhobby%2F-%2Fdetail%2F%3D%2Fcid%3Dcha_toumusical1746%2F&af_id=XXXX-990&ch=api'
カテゴリの抽出
カテゴリも同様です。
jsondata['result']['items'][0]['category_name']
Twitterへ投稿するメッセージ作成
上記で抽出したデータを一つの文章に繋げます。
tw_msg=jsondata['result']['items'][0]['title'] + jsondata['result']['items'][0]['affiliateURL'] + ' #'+jsondata['result']['items'][0]['category_name']
pprintで確認すると、こんな感じです。
pprint(tw_msg)
('【受注生産】ミュージカル『刀剣乱舞』 江 おん すていじ 〜新編 里見八犬伝〜 ランダムすていじカード(全24種) #ホビー通販 '
'https://al.dmm.com/?lurl=https%3A%2F%2Fwww.dmm.com%2Fmono%2Fhobby%2F-%2Fdetail%2F%3D%2Fcid%3Dcha_toumusical1746%2F&af_id=XXXX-990&ch=api')
Twitterに接続
Twitterに接続するには、tweepyライブラリをインポートして、トークンを使いClientに接続します。トークンは、Twitter開発者登録をした時に取得していた値です。取得手順はこちらで記載しています。
忘れた方は、再度取得する必要があるので、ご確認の上取得してください。
#ライブラリインポート
import tweepy
# API Keyなどトークン情報を記入
BEARER_TOKEN = "AAAAAAAAAAAAAAAAAAA******NFL1C4DtkM"
API_KEY = "0YoXRp*********x618eW"
API_SECRET = "t2RIcArNXTfo****EHdEebLqJyaYS"
ACCESS_TOKEN = "15656********D7wA1EwfIlVn"
ACCESS_TOKEN_SECRET = "1uaX4lyTnv4************BlO3HvpIITf7"
#Twitterに接続
twc = tweepy.Client(bearer_token = BEARER_TOKEN,
consumer_key = API_KEY,
consumer_secret = API_SECRET,
access_token = ACCESS_TOKEN,
access_token_secret = ACCESS_TOKEN_SECRET,
)
Twitterに投稿
投稿は、twepyのcreate_tweetを使います。
いきなりDMM情報の投稿はドキドキするので、とりあえず、Hello Worldって文字を投稿してみましょう。
#Twitterに投稿
twc.create_tweet(text="Hello World")
Twitterのツイートを確認すると、Hello Worldと投稿が成功しています。

では、先ほど作成した文章「tw_msg」の投稿です。
#Twitterに投稿
twc.create_tweet(text=tw_msg)
Twitterのプロフィールからツイートを確認すると、投稿が成功していることが確認できます。

ただこれだと、URLが表示されていますね。URLはタグの後に記載するように変更してみました。
tw_msg=jsondata['result']['items'][0]['title'] + ' #'+jsondata['result']['items'][0]['category_name']+ jsondata['result']['items'][0]['affiliateURL']
twc.create_tweet(text=tw_msg)
これで再度実行したら、URLは消えて綺麗に表示されています。

このツイートの商品をクリックすると、DMMの該当のページが開きます。ただ、投稿時に使用しているアフィリエイトIDがDMM取得用のIDのまま投稿されてしまっています。
これは、Twitter登録用に申請したDMMアフィリエイトIDに書き換える必要があります。

アフィリエイトIDの書き換え
IDの書き換えはreplace関数を使用します。アフィリエイトIDの文字の書き換えなので、次のような関数で書き換えを行います。 見やすくするために一時的に変数に格納しています。
下記は、アフィリエイトIDをXX XX-001で申請していた場合の置換例です。
tw_affiliateURL=jsondata['result']['items'][0]['affiliateURL'].replace('XXXX-990','XXXX-001')
tw_msg=jsondata['result']['items'][0]['title'] + ' #'+jsondata['result']['items'][0]['category_name']+ tw_affiliateURL
twc.create_tweet(text=tw_msg)
これで、申請したアフィリエイトIDでツイートされていると思います。

全てのデータをツイートする
ここまでのやり方だと、一つ目のデータだけがツイートされてしまいます。全てのデータをツイートするなら、items[]をfor文などをお用いて、データ分繰り返す必要があります。
また、ここで注意するのは、
- 高速で大量のツイートすると、Twitterのロックがかかる可能性がある
- DMMにREST APIでリクエストを出しても、長時間帰ってこないケースがある
これらは、sleep機能やtimeout機能を使って、想定外の事象発生を軽減する必要うがありそうです。
この辺の細かい修正は今後進めていこうと思います。
pythonの学習方法
python自体は構造が非常にシンプルなので、独学でも学ぶことは可能です。でも、すぐに副業で収益を得たいという思いがあるならスクール利用がお得です。
初心者にもわかりやすく解説している書籍とスクールをそれぞれご紹介しますので、pythonの習得のお役に立ててください。
pythonの基礎知識について
今回、pythonの基礎知識については、触れていませんが、そのやり方などpythonの基本的な仕様を確認したい方は、別途記事を書くのでそれまでお待ちください。なお、こちらの書籍は比較的pythonの基礎学習には向いている本だと思います。
また、python自体は難しいプログラミング言語ではありませんが、独学でゼロから学ぶのはそれなりに時間がかかります。簡単なプログラミングだからこそ、短期間のスクールに通うことで、見違えたようにプログラミングのスキルが上達します。
独学ではなく、スクールのススメ
副業やフリーランスを目指すのであれば、スクールに通うことを強くお勧めします。フリーランスとして稼ぐノウハウなどもセットで教えてくれるスクールが最近では非常に増えていますので、今後のキャリアを考える意味でも非常に有益です。
いずれ、フリーになれれば・・・とか、いずれ副業で稼げればいいな。って考えていたら、いつ実現するのかわからなくなります。
サクッとプログラミングを習得して夢のフリーランス生活を勝ち取りましょう。
テックアカデミー
TechAcademyは、1人ではプログラミング学習が続かない方のための、パーソナルメンターがつく「オンラインブートキャンプ」です。
オンラインブートキャンプの特徴は下記の3つがあります。
- スクールに通わなくても、自宅などでオンライン学習できる
- わからないことはいつでもチャットでメンターに質問できる
- パーソナルメンターがついてオリジナルサービスやオリジナルアプリの公開までサポート
自分のオリジナルサービスやアプリを開発しながらプログラミングを実践的に学んでいただき、 わからないことはいつでも現役エンジニアのメンターに相談することができます。
現在は、6つのコースがありいずれも最短4週間で完結します。
■提供中のコース
- Webアプリコースコース
- iPhoneアプリコース
- Androidアプリコース
- WordPressコース
- Webデザインコース
- アプリUI/UXデザインコース
詳細はこちらをご覧ください。