Twitterを自動化する

Twitterを自動化するまでの流れです

APIを利用する為にアクセストークン等を取得する

TwitterAPIを利用する為には"API key", "API secret key", "Access token", "Access token secret"の4つを入手する必要があります

まずはTwitter Developer Platformにアクセスします

そうしたら"Create New App"と書かれているボタンを押します

色々と聞かれるので記入します(英作文)

そうして入手した"API key", "API secret key", "Access token", "Access token secret"は漏らさないように気を付けましょう

Botを書く

CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRETは先程取得したものに書き換えてください

from requests_oauthlib import OAuth1Session
import random

CK = CONSUMER_KEY
CS = CONSUMER_SECRET
AT = ACCESS_TOKEN
ATS = ACCESS_TOKEN_SECRET
twitter = OAuth1Session(CK, CS, AT, ATS)

url = "https://api.twitter.com/1.1/statuses/update.json"

tweet = "1D6 : " + str(random.randint(1, 6))

params = {"status" : tweet}

res = twitter.post(url, params = params)

if res.status_code == 200:
    print("Success.")
else:
    print("Failed. : %d"% res.status_code)

ではこれを実行してみましょう

下の画像のようにツイートされました!やったね!

f:id:outs1de:20190214222107j:plain

Herokuにデプロイする

ではこれを自動で定期的に実行されるようにしましょう

方法はいくつか考えられます

例えばローカルのマシンにcronを設定する、これは一番楽で手っ取り早いですが電源を切ってしったらその間は動きません

VPSにcronを設定すると先程の問題は解決できます

しかし、VPSは大抵お金がかかります

Google Cloud Platformのmicroインスタンスなら無料ですが、それでも登録にはクレジットカードが必要です(Vプリカ等は使えません)

なのでHerokuを使います

HerokuはPaaSと呼ばれるもので詳しくはWikipedia参照

Herokuに登録し、アプリを作り、Heroku CLIからpushしてHeroku Schedulerを設定すれば終わりです(投げやり)

Heroku Schedulerを使うためにはクレジットカードの登録が必要ですがこちらはVプリカでも登録可能です

Python/C++で文字列をサクッと数値文字参照に変換する

数値文字参照についてはWikipedia参照

電子掲示板のNGWord回避などに使われるアレです

コードについてですが、やっている事は文字列を一文字ずつ10進数に変換しているだけですね

もし使うならPython版推奨です(C++版はマルチバイト文字に対応していない為)

Python

s = input(">> ")

for i in range(len(s)):
    print("&#" + str(ord(s[i])) + ";", end="")

C++

#include <iostream>
#include <string>

using namespace std;

int main(){
    string s;
    cout << ">> ";
    cin >> s;
    for (int i = 0; i < s.length(); ++i){
        cout << "&#" << (int)s[i] << ";";
    }
    return 0;
}

では