💎

RubyでMisskey.ioへ投稿するbotを作る

2024/04/25に公開

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