💎
RubyでMisskey.ioへ投稿するbotを作る
RubyでMisskey.ioへ投稿するbotを作る
Misskeyに投稿するにはが話題だったので、まず簡単に情報を探しました。
各言語対応のライブラリがありますが、なんとRubyのライブラリがない!だめもとでBing Copilotに聞いて、少しいじったらライブラリなしで動いたので公開します。
Misskeyでの設定
- Misskey.ioのbotアカウントは作っておく
- 「プロフィール」→「高度な設定」から、「Botとして設定」をONにする
- 「プロフィール」→「高度な設定」から、「追加情報を編集」から、「管理者」「〈あなたのアカウントのURL〉」を設定する
- 「設定」→「API」→「アクセストークンの発行」から、権限を「ノートを作成・削除する」にして、アクセストークンを取得しておく(アクセストークンの管理は充分に気をつけてください)
実際のソース例
require 'net/http'
require 'uri'
require 'json'
# アクセストークンをセットします
# 環境設定にMK_ACCESS_TOKENとその値をセットするなど実際の実装は考えてください
MK_ACCESS_TOKEN = 'あくせすとーくん'
# テスト用ダミーメッセージをセットします
t_time = Time.now.to_s
post_text = "test post: #{t_time}"
uri = URI.parse("https://misskey.io/api/notes/create")
request = Net::HTTP::Post.new(uri)
request.content_type = "application/json"
request["Authorization"] = "Bearer #{MK_ACCESS_TOKEN}"
request.body = JSON.dump({
"text" => post_text
})
req_options = {
use_ssl: uri.scheme == "https",
}
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
http.request(request)
end
if response.code == '200' then
# 投稿が成功しました
puts "Misskeyへの投稿が成功しました。"
else
puts "Misskeyへの投稿が失敗しました。"
end
Discussion