#Twitter のつぶやきを #Mastodon に流す,たとえWindowsしか使えなくても! #マストドン #初心者向け

やってみたけど意外に簡単だったのと,よく使う人もいそうなので超初心者向けメモ.

必要なもの

  • IFTTTに接続されたTwitterのアカウント
  • 適当なインスタンスのMastodonのアカウント(この場合,mstdn.io というインスタンスの o_ob というアカウント )
  • 最新のcurlが利用できるLinux等の環境もしくはWindows版curl

ネット上のドキュメントにはLinux環境でのドキュメントが多いので,Windows版curlでの説明で書いてみます.

なお「curl」とはコマンドラインで使えるブラウザのようなもので,curl http://… とすることでそのURLを叩くことができます.ダウンローダーなど嬉恥ずかしい使い方もたくさんあるのですが,今回はPOSTメソッドでMustodonのAPIを叩くのに使います.

ちなみにLinux環境で,curlが入っているけどなんかエラーが出る人は,最新のTLS対応でない可能性があります.管理者権限で yum update してください.

Macの人はターミナルに入っているはずです.

Windows版のcurlを入手する

https://curl.haxx.se/download.html

こちらで「Packages」の「Windows 64bit」の適当な圧縮形式のファイルを入手してください.
64ビット版の7.53.1はこちらにありました.例えばこのZIPをDownloadsにダウンロードして解凍した場合で,以下説明します.

バイナリファイル自体は Downloads\curl-7.53.1\src 」に curl.exe として入っていますが,これはコマンドライン用のEXEですのでダブルクリックしても何も起きません(見えない).

Windows+R で「ファイル名を指定して実行」→「cmd」でコマンドラインを開く.

2017-04-23 (1).png

黒こわい画面が開いたら,curl.exe をこの画面にドロップしてみましょう.

C:\Users\yourname>C:\Users\yourname\Downloads\curl-7.53.1\src\curl.exe

と出ていたら,エンターキーを軽快に叩いてみてください.

なんかメッセージが出たら,今度は curl.exe の後ろに「http://google.com」など適当なURLを打ち込んでみてください.

2017-04-23 (2).png

GoogleのトップページにアクセスしたときのHTMLが表示されます.まあ実際には「引越ししました,302エラー」が表示されています.

これで準備は終わりです,いろいろ細かいこともありますが,以下,このcurl.exe があるディレクトリで作業してしまいましょう.

まず独自アプリの登録

先ほどのディレクトリで curl(…curl.exe+半角スペース)に続いてコマンドを打っていきます.curl.exeをcurlと見なして以下真似てみてください(太字は変更).

curl -X POST -d “client_name=MSTDN2Twitter&redirect_uris=urn:ietf:wg:oauth:2.0:oob&scopes=write&website=https://aki.shirai.as” -Ss https://mstdn.io/api/v1/apps

なお,コマンドラインでは「↑」キーを押すと過去のコマンドを再利用することができます.マウスの右クリックでクリップボードに張り付けることもできます.

なお,client_nameは好きにつけられます,これから皆さんが作る独自アプリの名前ですのでせいぜいかっこいい名前にしましょう.websiteは自分のサイトでも大丈夫なはず,mstdn.ioは自分が利用したいインスタンスに置き換えてください.

うまくいくと以下のような文字列が出てきます.

{“id”:xxxx,”redirect_uri”:”urn:ietf:wg:oauth:2.0:oob”,”client_id”:”[A]64文字の英数字“,”client_secret”:”[B]64文字の英数字“}

マウスドラッグして変な改行や,テキストエディタなどに(Windows+Rで「notepad」)スペースが入らないようにして張り付けておきましょう.

アプリにユーザを登録する

次に,このアプリを使ってご使用のインスタンスでユーザID,パスワードを使って認証をし,トークン(Token)という専用回数券を入手します.

curl -X POST -d “scope=write&client_id=[A]&client_secret=[B]&grant_type=password&username=[メールアドレス]&password=[パスワード]” -Ss https://[mstdn.io]/oauth/token

  • [A]はひとつ前のプロセスで発行されたclient_id
  • [B]はひとつ前のプロセスで発行されたclient_secret
  • [メールアドレス]はご利用のMastodonサーバ(インスタンス)で登録したメールアドレス
  • [パスワード]はご利用のMastodonインスタンスで登録したパスワード
  • [mstdn.io]はご利用のMastodonインスタンスのURL本体に置き換えてください

[~]や”~”などのカッコや引用符はつける必要がありません.ドラッグと右クリックを使って丁寧に作業してください.正しく設定できているとエンターを押した後に,

{“access_token”:”[C:英数64文字のトークン]“,”token_type”:”bearer”,”scope”:”write”,”created_at”:[日付数字]}

という反応が出ます.これも大事な文字列なのでテキストエディタに拾っておきましょう.トークンは大事なものなので,ネットなどに撒くのは危険です!

間違っていた場合は以下のような文字列になります.メールアドレスやパスワードをよく確認してください,ちゃんとログインできますか?

<html><body>You are being <a href=”https://mstdn.io/auth/sign_in”>redirected</a>.</body></html>

どうしてもうまくいかないときは上記のcurl の後に続く「-Ss」(反応を表示しない)のところを「-v」(全部表示)にしてみるといろいろ分かるかもしれません.

 

試しにcurlから投稿してみる

さてせっかくですので試しにcurlから投稿してみましょう!

curl.exe -X POST -d “access_token=[C]&status=Hello World!&visibility=private” -Ss https://[mstdn.io]/api/v1/statuses

  • [C]はアクセストークンです.長い英数文字列です.引用符などは不要です.
  • Hello World!はつぶやきたい文字列です,日本語はここでは問題があります.
  • privateにしておくと,ほかの人には見えません.
  • [mstdn.io]はご使用のインスタンスに置き換えてください.カッコは不要です.

いかがでしょうか?うまく投稿されましたか?うまくいかなかった場合は「Oops.png」や「We’re sorry, but something went wrong.」といったHTMLが反応として返ってくるはずです.

IFTTTで自動化投稿設定をする

IFTTTについて細かく解説が必要な方は,ほかのサイトなども見てください.If [何か起きたら] then [何かする]というシンプルな部品の組み合わせで強力なWebサービスが作れます.個人利用や試作としては十分な機能を持っており,プログラミング不要です.

使用するモジュールは「maker_webhooks」です.

  • 名称は[My Twitter2Mastodon]など自由にどうぞ.
  • [New Tweets by You]:RTを対象にする,@返信を対象にする場合はそれぞれチェック.
  • [URL]:[https://mstdn.io/api/v1/statuses] お使いのインスタンスに合わせて変更してください
  • [Methods]:[POST]
  • [Content Type]:[application/x-www-form-urlencoded]
  • [Body]:[visibility=public&access_token=[Cのトークン]&status={{Text}}

 

{{Text}}の前後にはスペースを入れないことをお勧めします.「Ingredient」を使えばURLなども入ります.

Saveしたら適当なつぶやきをTwitter側でやってみて実験しましょう!(意味なくつぶやくのは意外と大変…)

うまくいかないときはIFTTTのApplet側のLogを確認しましょう.変なスペースが入ってたりすると事故の元です.

visibilityは{private, public, unlisted, direct}をとります.小文字で書くことに注意.

ちなみにIFTTTを使いこなしている人は,Wordpressの投稿をつないだり,出勤簿にしたりと,いろいろ使い道を思いつくはずです!

Happy Tweeting and Tooting!

 

おまけ1:作業の後片付けをしたい

はい,終わったらcurlのフォルダごと捨ててしまいましょう.

特に,Mastodonのパスワードやトークンがその辺に残っているのは気持ち悪いですので!

ここまで解説した方法の良いところは,コマンドライン上で操作していますので,パスワードを保存したりすることが一切ない点なのです.

 

おまけ2:Mastodon → Twitterもやりたい

ちなみに Mastodon→Twitter はできるけどあまり利点がないので検証してません.

簡単に言うと,Mastodonには標準でATOMを吐いてくれますので,それを拾えば既存の各種サービスでできることが多いからです.

具体的には,ご自身のアカウントの後ろに「.atom」を付けたURLにアクセスすれば,フィードが取れます.

https://mstdn.io/@o_ob.atom

以上です!

何か間違いやフィードバックがありましたら,こちらのTOOTまでどうぞ.

https://mstdn.io/@o_ob/815348

Mastodonに見るサーバー技術の民主化(=個人運営化)について潜在的技術リスクと反省・加筆版

Mastodonはじめました。

https://mstdn.io/@o_ob/

以下、サーバ立ち上げようと思ってhogehogeしてみた結果、反省の再掲です。雑言です。

ちなみにMastodonインスタンス立ち上げのHowToではありません!このエントリーもMastodonが流行り始めて3日ぐらいの2017/4/16の記事です。もう古びていると思います!

Mastodonに至るまでのノスタルジー

ある種の大学の先生というのはいわゆるフルスタック系エンジニアである必要があって、自分の研究室やらIT環境やらを常に実験材料にしてhogehogeするものです。

自分もサーバー関係はいろいろやってきていて、古いところではISDNテレホーダイを使った自宅サーバーとか,FirstClassを使ったSNSのはしりとか。フランス留学中はリモート録画サーバーとか、帰国後のこの10年強でも自宅/自作サーバー系はいろいろやってきていて、光ファイバー、固定IPからDDNSなどなど。

ハードウェア的には自宅(自作、サーバー設計機)、1U→エアコン含めた電気代が機材を上回る→VM→レンサバ、VPSRasPiときていて、OS的にはRedhat→Debian→Ubuntu→CentOSと経験しそれなりに実用レベルの運用経験&セキュリティも維持してきたのだけど、メールサーバー運用するのをできるだけ避けてきたのとDockerで実運用してこなかったので、Mastodonインスタンスを立ち上げようとなると、なかなか勇気いる。

他にもAWSGoogle Compute Engineなどリソース課金型サービス、SSLなども同様で有料となると、なかなか時間と作業時間が折り合わない。貧乏な学生時代は自作だけでサーバー立てるのはなかなかに利益あったのですが。

サービス的には自作CMS、会員サービス、チャットやロビーなどはモリモリ書いてきたけど、最近はセキュリティ維持のためにOSSでもLAMP+Wordpressのようにパッケージ管理が行き届いた信頼性の高いソリューションに頼って来た感じです。

単にインストールするだけなら何とかなったとしても、実際の運用、それにまつわるトラブルなども含めてリスク管理ではありますし、実際に運用してみるとなると、結局インストールが簡単で、ユーザが多くてセキュリティ対策が早くて、どんな寝ぼけていても実施できるような堅牢性が重要になります。

なのでLAMPも、試すだけならともかく実運用ならできるだけソースから入れないし、できればVPSもゼロから立ち上げるのではなくて、レンタルサーバーで終わらせたい。
(本当はそういう人こそDockerのほうが向いているのかもしれないけど、ISPレンサバ各社がそこまでDockerをサポートしていないのも現状)

例えば昨今ではPHPで素のログイン画面やファイルアップロード書くのは怖い。学校では教えるかもしれないけど、そんなユルいPHPフォームはあっという間にrootkitを送りつけられたり、SQLインジェクションを食らったりします。フランスでは日常的にハッカーがSSH絨毯爆撃してくるので、よっぽどしっかりとセキュリティ対策していないとあっという間にルートをとられたりゾンビ化されてしまいます(経験談)。

「教科書に書いてあること」と「教えられること」の差分

話を日本学校の先生に戻すと,つまり「教科書に書いてある事」と「生々しくて教科書には書けない実運用」の差分は日増しに大きくなっていく、ということで。ことIT分野ではサーバ技術についてはその傾向は強いと思う。

先生としては出来るだけ新鮮で生々しい技術を教えて、技術者の価値が高いうちに色々な経験を失敗含めて体験させるべきだろう。

(誰もがやれるようになってから失敗すると責められるからな!)

まあつまりMastodonの流量によるトラフィック圧迫、もしもの時のデータ消失の責め苦などが怖くて試せないなど言い訳まじりに、最新のSNSサービスのインストールが気軽に試せなくなっていく時点で潜在的技術に対するリスクを増大させているのだなあと感じます。

まあそのうちどこのISPでもやりそうだけどね!あとキャリア各社ね。

ソフトバンクとかauとか好きそうだし。

と思ってたら mstdn.jp がすごいことになってた

mstdn.jpを立ち上げておられたぬるかる氏,どうやら筑波大学のM2さんなのですが,なんだかすごいことに.

■暫定世界一ユーザの多いmstdn.jpの管理者さんの奮闘ぶりに、思わずMSのクラウド担当者も声をかけるレベル
https://togetter.com/li/1100609

■支援先

https://enty.jp/nullkal

これは経費差し引いても不要から外れる感じがする(まあ贈与して課税にすればいいのかもしれないけど…)。

普段からDockerをどっかどっかインストールしている人にとってはそんなに難しいことじゃないでしょうね~,とはいえ1時間で2000アカウントぐらい増えていく状況を見ていたのでそれは笑いが止まらないというか、何か運命的なものを感じるのだけれど。

ぬるかる氏の将来はどこへ。いい勉強ですね。

日本人こわい,おもしろい.

さて日本人の熱狂ぶりは本当にすごいエネルギーですね。

偽のMastdonサーバーなどもっと出てきてもおかしくないです。気を付けましょう。

 

3日ほどMastodonTwitterの並列社会に暮らしてみて感じたこと

MastodonTwitterの良いところを完全に喰っているけど、実は野蛮なTwitterは野蛮さゆえに消滅はしないと思う。というか最後にはTwitterOStatus準拠になって「一つのMastodonインスタンス」となって終われば良い事だ。

あとは未成年と本人認証かな,勝手サーバーだから仕方ないのかもしれないけど、連邦タイムラインに変態が流れるのはつらい。やつらはCWとか自分から設定しないからな。

同様に年齢認証について。幼稚なユーザの実年齢になんて興味はないのだけど、Mastodonの特性と未成年Twitterの欲望はとてもよく一致すると思う。

“何かあったときに”責任とるのはサーバー管理者なのだろうか。まあ「何かあったとき」なんてことを考えてたらインスタンスなんて立てられないのだけど、なんか予想をはるかに超えるような事件が起きそうでドキドキします。

つぶやきコンテンツ漂流問題

多くの技術系カリスマTwitter諸氏が取り組んでいるのは、現状のメインつぶやきをどこにするか?という「つぶやきコンテンツ漂流問題」とでも呼ぶべきか、まあライフログをどこでまとめていこうかということです。そんなの気にしてない人はどうでもいいのだろうけど。

自分はAmaroqiPhoneつぶやきは解決したので、最初の出発点はTwitter→MastdonなのかMastodon→Twitterなのかといった問題が残ってる。

実際にはMastodonfeedを吐くようなので、すぐに解決しそう。

で自分はTwitterライフログはすべてFacebookにコピーし、WordPressにまとめられているのでこのストリームに乗るなら楽である。
しかし奇遇なことに、実はWordPressがミニブログとの競合を起こしてしまっている。

なのでこれを書いている。

Google方面もがんばれ,特にGoogle Sitesとか.

WordPressも、本当に必要なサイト以外は、どんどんGoogle Appsあたりに引っ越していくべきかと思う。

そういう意味ではGoogle Waveとかもう一度頑張って欲しい気もするよ、Google AppsSlackbot的な融合をしてくれるなら歓迎だ。

実はこの週末はMastodonのインストールに取り組むどころか,とあるサイトの完全SSL化とGoogle Apps統合をやっていたのですが、Google Appsの一部であったGoogle Sitesは”いちおう”取得したドメインでWebサイトが構築できるサービスなのですが,見た目がダサすぎるばかりか、オブジェクトが個性的過ぎてCMSとしてはホント最低限のイントラネット程度の意味しか持たないサイトが作れる。このGoogle Sitesでもいいや!って用途もあるので、久々にGoogle Sitesを独自ドメインで運用しようとしていたら、実は「新しい Google Sites」なるサービスが立ち上がっていて,これはレスポンシブデザインもできるし、Google Drive各種ともきれいに統合できているしフォントは美しいしでいうことないのだけど,なんと「独自ドメインでは運用できない」という名言付き.なんだそれ!!フッターの「このサイトはGoogle Sitesでつくりました」もどうにかしてよと思うのだけど,なんというかこんなに素敵なサイトなのに自社ドメインでしか使えないとなると,じゃあそれでGoogle Appsの契約アカウント数が増えるのかというとそんなことはないと思うぞGoogleよ.Webというのは不特定多数の人々に無料で使えてこそ意味があるのではないでしょうか.

まとめ: OStatus もっとがんばれ

Mastodonのようなオープンソースのマイクロブログサービスは実は標準化に取り組んでいる成果であって,OStatus というそうです.これはまさにLinux黎明期のころのような興奮なのですね.

実際に使う側の問題としは,この100文字ぐらいのチャットやマイクロブログから、ミニブログといった文字数と写真等のコンテンツの保管,メディアタギングをどう活用していくか。例えば「LINEブログ」とかも,こうなってくるとあまり立つ瀬がないのかもしれない。レスポンシブなBlogとフォント以外に利点がないもの(というかこういうのはアメブロがやればいい).

Mastodonはこの形のまま安定することはないと思います。インスタンスごとにカスタマイズして、厳格なユーザしかいないインスタンスも作れるだろうし、企業内インフラとしての利用もあるだろうし、個人用ローカルと連邦参照のみに絞ったスマホインスタンスによるOStatusなんかもできるかもしれないので、今後企業IT諸氏は大いにOStatus活用を検討すべきと思います。