画像のtootに苦戦する

MastodonのインスタンスにtootするプログラムをPHPで書く。
cURL関数を使ってpostメソッドで送信する。
テキストのみのtootはできる。
しかし画像のtootは次の順
  1. 画像をアップロードしてidを得る
  2. 1.で得たidを配列media_idsに加えてtootする
でできるそうだが、それができずに悩む。
いろいろと試した結果、原因はパラメータ名と配列だった。
パラメータ名は、'media_ids'でなく、'media_ids[]'だ。
$dataを送信するデータ($data['status']=tootするテキスト)として、
  • $data['media_ids'] = array($id); #Fail
  • $data['media_ids'][] = $id; #Fail
  • $data['media_ids[]'] = $id; #Pass

Rubyでnet/httpライブラリを使う場合やPythonでurllib3を使う場合も同じで、dataを送信するデータとして
  • data['media_ids'] = Array[id] #Fail
  • data['media_ids[]'] = id #Pass

こんなことで苦戦した…w
2017/07/18 23:11
タグ