Pythonistaからツイートする。

Pythonistaからいろいろツイートするアプリができたら楽しいだろうなと考えて調べてみたところ、予想以上に簡単に実装することができた。

まず、前提条件としてiOS側にTwitterアカウントを1つ以上認証させておく必要がある。
Pythonistaのtwitterモジュールは端末上に登録されているアカウントを使用してtwitterへのアクセスを行うからだ。
逆に、これが使用できるのでアプリ上でめんどくさい認証処理を書かなくてすむ。

以下、ランダムな数字を適当にツイートするアプリを書いてみた。(ランダムな数字にしているのは、twitterが同じ内容の連投を禁止しているから。)

import twitter
import random

def tweet_random_number():
    all_accounts = twitter.get_all_account() # 登録されている全アカウントを取得
    if all_accounts < 1:
        return
    account = all_accounts[0] # 一番目のアカウントを取得
    number = str(random.random())
    # ツイートするアカウントとツイート内容を引数にする
    twitter.post_tweet(account, number, parameters=None)
    print(number)

if __name__ == '__main__':
    tweet_random_number()

まず、twitter.get_all_accounts()で端末上に登録されているtwitterアカウントの一覧を取得する。
取得結果が1件以下、つまりアカウントが登録されていなかった場合は処理を終了するようにしている。

必要なアカウントは一つで良いので、一覧の中から先頭のものを取得しaccountに格納する。
次にランダムな値を生成し、文字列に変換しておく。
これは、ツイートする際の内容についての引数は文字列である必要があるから。

最後に、twitter.post_tweet()につぶやきたいアカウントと内容をそれぞれ引数として渡す。
今回は単純につぶやくだけで良いので、parametersは渡していない。

また、ツイートが正しく行われていることを確認するために、内容に使った数値をコンソールに出力するようにしている。これは実際のアプリ実装には必要ない。

以上で簡単だがツイートするアプリができた。
あとはこれとUIを組み合わせればそれっぽいアプリを作ることができる。