PHP
Twitter
mastodon

登録不要のマストドンのシェアボタンを作って更新した

More than 1 year has passed since last update.

久しぶりのQiitaなので初投稿です。


作った経緯

皆さん、マストドンブーム(?)が落ち着きましたが、いかがでしょうか。

私はTwitterからすっかりマストドンに生活スタイルが変わりました。

マストドン、楽しいですよね。

でもTwitterみたいに特定のサイトを気軽に共有出来るボタンが無いです。だから作りました。


作ったやつ

Mastoshareです。


使い方

ボタン設置済みサイトからボタンをクリックするとマストドンに共有出来ます。


ボタン設置方法

簡単に設置出来ます。


test.html


<a href="https://mastoshare.net/post.php?text=トゥートさせたい文(URLエンコード済み)">トゥート</a>

画像(SVG)を使うこともできます。


img.html

<a href="https://mastoshare.net/post.php?text=トゥートさせたい文(urlエンコード済み)" onclick="window.open(this.href, '', 'width=500,height=400'); return false;"><img src="https://mastoshare.net/img/toot.svg" width="75" height="20"></a>




※URLとタイトルは自動挿入されます。

詳しい情報は[こちら]から。ボタンジェネレーターもあります。(https://mastoshare.net/create)


技術的なお話

開発にphpを使いました。APIへのリクエストは全部cURLで行ってます。そのときに困った事が結構あったのでメモとして書いています。


レスポンスをjson_decode();しても使えない

エラーが出るやつ


error.php

$requrl = $url.'/api/v1/accounts/verify_credentials';

$curl = curl_init($requrl);
$header = "Authorization: Bearer ".$at;
$options = array(
CURLOPT_HTTPHEADER => array($header),
CURLOPT_POST => false
);
curl_setopt_array($curl, $options);
$result = curl_exec($curl);
$data = json_decode($result);
echo $data->acct;

出ないやつ


good.php

$requrl = $url.'/api/v1/accounts/verify_credentials';

$curl = curl_init($requrl);
$header = "Authorization: Bearer ".$at;
$options = array(
CURLOPT_HTTPHEADER => array($header),
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_POST => false
);
curl_setopt_array($curl, $options);
$result = curl_exec($curl);
$data = json_decode($result);
echo $data->acct;

cURLはCURLOPT_RETURNTRANSFER => 1を指定しないとデーターを取り出せないみたいです。これに結構悩みました。


二段階認証のユーザーに対して

ダイレクトログイン式だとニ段階認証のユーザはログインできません。(APIもない)ので仕方ないのでcallback式で実装しました。登録は不要です。


終わりに

Qiitaにもつけて欲しい。

みんな使って下さい。よろしくお願いします。