FileMaker から Akkoma へ直接投稿できれば bot を自由に作れるようになる。
Akkoma は Pleroma のフォークであるため、実際は Pleroma と同じ方法でできた。
環境:macOS Ventura 13.5(英語環境)、Claris FileMaker Pro 20.3.1.31
(1)以下のサイトを使えば、Access Token が生成できる。
Access Token Generator for Pleroma API
https://tools.splat.soy/pleroma-access-token/
- Instance URL: {Akkoma の URL}
- Client Name: {適当な名前}
- Web site: {空欄でいい}
- Scope: write
投稿するだけなので Scope は write とした。
Publiesh access_token を押せば認証画面が出るので、「APPROVE」を押す。すると Result 欄に access_token、client_id、client_secret が表示されるのでメモしておく。
(2)試しにコマンドラインから投稿してみよう。
$ curl -X POST -d 'status=これはテストです。' -d 'visibility=private' --header 'Authorization: Bearer {access_token}' -sS https://{Akkoma のアドレス}/api/v1/statuses
visibility で指定する値は以下のとおり。
- public:一般公開
- private:フォロワーのみ
- local:インスタンス内のみ
- unlisted:一般公開タイムラインに表示しない(プロフィール欄には表示される)
- direct: @ で指定したユーザーだけが見られる
投稿内容には半角スペースが入っていても問題ない。
戻り値がゴチャゴチャ表示されるので、それを非表示にしたければコマンド末尾に > /dev/null
を付ける。
(3)FileMaker から投稿するには以下のようなスクリプトを作成すればいい。
Set Variable [ $text ; Value: "これはテストです。" ]
Insert from URL [ Select ; With dialog: Off ; Target: $result ; "https://{Akkoma のアドレス}/api/v1/statuses" ; cURL options: " -X POST" & " -d \"status=" & $text & "\"" & " -d \"visibility=private\"" & " --header \"Authorization: Bearer {access_token}\"" ]
投稿内容には半角スペースが入っていても問題ない。
参考:
【Pleroma】Botが生えた【Twitter API】
https://glass-lab.net/2023/10/03/%E3%80%90Pleroma%E3%80%91Bot%E3%81%8C%E7%94%9F%E3%81%88%E3%81%9F%E3%80%90Twitter%20API%E3%80%91/
Amazon.co.jp: FileMaker 2023 スーパーリファレンス Windows&macOS&iOS 対応 eBook : 野沢 直樹, 胡 正則: 本
https://amzn.to/3SxmvOf