2018/04/01 ブログのテーマをcocoonに変更しました。
スポンサーリンク

[Python]Mastodon botを作ってトゥート!してみた!!

スポンサーリンク

Mastodon流行ってますよねー

いつもTwitterにいる僕が今日はMastodonにいました。たのしー!

ちなみにトゥート!とはTwitterで言う所のTweetです!!

Twitterと比較するのもよろしくない気もしますが......

ポストTwitter? 急速に流行中「マストドン」とは
日本のWeb好きの間で急速に注目を集めている「Mastodon」(マストドン)とは――。

環境

MacOS Sierra(Pythonが使えればなんでも)

Python2.7.12

事前準備

pipでモジュールをインストールします。

$ pip install Mastodon.py
GitHub - halcy/Mastodon.py: Python wrapper for the Mastodon ( https://github.com/tootsuite/mastodon/ ) API.

pipが入ってない方を参考に

pipの使い方とインストール
pipはPythonのパッケージ管理ツールです。2系、3系ともに最新のバージョンであれば標準で付属しており、インストールすることなく使用することができます。本項では標準で付属していないバージョンも考慮し、インストール方法も記載します。インス

Setup

レジストレーションとログインするsetup.pyを実行します。

#! /usr/bin/env python
# -*- coding: utf-8 -*-

from mastodon import Mastodon

url = "https://mstdn.jp" #インスタンス先

Mastodon.create_app("hoge_app", #クライアント名
    api_base_url = url,
    to_file = "cred.txt"
    )

mastodon = Mastodon(
    client_id="cred.txt",
    api_base_url = url
    )

mastodon.log_in(
    "******@****", #ログインメールアドレス
    "***********", #パスワード
    to_file="auth.txt"
    )

 

変更する箇所

インスタンス先

現在、日本でMastodonをするならmstdn.jpが多いと思います。僕もここにいます。

mstdn.jp
Mastodon日本鯖です.

違う場合は変更して下さい

クライアント名

任意の単語でOK

僕の場合はhoge_appなのでこんな感じ

メールアドレスとパスワード

登録した時に作ったものを。

トゥート!

setup.pyを実行したらようやくトゥート出来ます!!

#! /usr/bin/env python
# -*- coding: utf-8 -*-
from mastodon import Mastodon

mastodon = Mastodon(
        client_id="cred.txt", 
        access_token="auth.txt",
        api_base_url = "https://mstdn.jp") #インスタンス
mastodon.toot("Hello world") #ここを変える

 

これを応用したBOT(2017/05/20日追記)

【Mastodon bot】20%の確率で性器を露出するドラえもん
以前[Python]Mastodon botを作ってトゥート!してみた!!という記事を書きました。しかしbotを作ったと言いながら、プログラムからトゥート!しただけであり、botとは言えないものでしたので、作ってみましたー。

BOTの記事書きました~

 

 

コマンドラインからトゥート!

setup.pyで作られるauth.txtを使います。

curl -X POST -d "access_token=auth.txt内の文字列&status=toot内容&visibility=private" -Ss https://mastodon.example.com/api/v1/statuses

僕はこんな事して遊んでました。(ちょっとしたシェル芸)

$ hoge=`echo tweetできる喜び | sed 's/tweet/toot/g` && curl -X POST -d "access_token=auth.txt内の文字列&status=$hoge&visibilituy=public" -Ss https://mstdn.jp/api/v1/statuses   

たっのしー!

自動フォボ(ニコ)[追記 2017/06/08]

Pythonではないですが、Node.jsで自動ファボする機能を作ってみました!!

自動でログインして、永遠にファボり続けます。

プログラムは今のところ公開するつもりはありませんが、結構面白いので、紹介という形で

プログラム実行して、10分くらい放置してたら、沢山ブロックされてました(笑)

参考

参考にさせて頂いたサイトです。ありがとうございます。

MastodonにTootするまで(Python) - Qiita
# Mastodon Twitterライクなサービスらしい。オープンソース。 とりあえずPythonでToot(TwitterでいうTweet)するまで。 # ライブラリ PythonとかRubyとかあるらしいので、とりあえずP...

 

The following two tabs change content below.

オーカワ

GCPばっか触ってるにゃーんエンジニア こちらのブログでも活躍中

コメント

  1. […] [Python]Mastodon botを作ってトゥート!してみた!! […]

  2. papa より:

    setup.pyの18行目mastodon.log_in(~~~)に対して
    File “setup.py”, line 18, in
    mastodon.log_in(
    NameError: name ‘mastodon’ is not defined
    とのエラーが出ます。対処方法ありますでしょうか

    • オーカワ より:

      papaさんコメントありがとうございます。
      先ほど試して見ましたが、私の環境では問題なく実行が出来ました。

      mastodonが定義されていないという事なので、
      13行目を
      hoge = Mastodon(
      18行目を
      hoge.log_in(
      に変更して実行してみてください。もしかしたら、モジュール名と干渉しているのかもしれません。