API書き込み機能について

目的

  • 2022/3/6ごろから5ch運営がAPI対応専ブラでの書き込みの仕組みを新しく追加しました
    荒らしによる巻き込み規制を軽減
    専ブラからの書き込みを許可されたものだけに制限
    専ブラスレ画面に広告挿入し収益増を期待
  • 必要な情報も追加されたため今までの方法では書き込めなくなります
  • API書込で想定される書き込みヘッダ/データ/仕組みをテンプレート/機能として用意することで
    今までの専ブラで書き込めるようにします

とりあえず使いたい

  • API書込に必要な情報を手に入れます
    • API書込対応したAPIKey 既存のものは使えません
    • API書込対応したHMKey 既存のものは使えません
    • API書込対応したUser-Agent: 設定値文字列 既存のものは使えません
    • X-PostSig:ハッシュ値作成元の書式文字列
      • 現時点では次のとおりです
        BBS<>スレッドKey<>投稿UNIXTIME<>FROM<>mail<>本文<>スレ立て時のみスレッドタイトル<>User-Agent: 設定値文字列<>X-MonaKey: 設定値文字列<><>X-PostNonce: 設定値文字列
      • <>区切りです
      • 並び順が決まっているようです
      • BBSからスレッドタイトルまではURLデコードした実文字列です
      • テンプレートファイルのX-PostSig: 行に書式文字列を設定します
      • 内容や順番が変更されたら適宜書き換える必要があります
    • API書込対応したテンプレートファイル
      • テンプレートを使用しない場合はAPI書込に対応しません
      • 次の4つのヘッダすべてが必要です
        X-PostSig: 
        X-APIKey: 
        X-PostNonce: 
        X-MonaKey: 

    • Detour 4.4.3.97以上
  • API書込に必要なAPIKeyとHMKeyを設定します
    • API読込とAPI書込のキーを同じものを使用する場合
      • DAT関連の設定画面で下記を設定します
        APIKey
        HMKey
        postUAまたはUser-Agent
      • 下記が書かれているテンプレートファイルを使用します
        例
        X-APIKey: <?APIKEY=?>(改行)
        X-PostSig: <?HMKEY=?><><?URLDEC+?><?BBS=?><><?KEY=?><><?TIME=?><><?FROM=?><><?mail=?><><?MESSAGE=?><><?SUBJECT=?><?URLDEC-?><><?TRIM+?><?User-Agent:?><?TRIM-?><><><?TIME=?>.<?MSEC=?>(改行)
    • API読込とは別のAPI書込キーを使用する場合
      • テンプレートファイルにAPIKey/HMKeyを直書きします
      • <?APIKEY=?>と<?HMKEY=?>を実APIKeyとHMKeyで置換します
      • <?TRIM+?><?User-Agent:?><?TRIM-?>を実User-Agentで置換します
        例
        X-APIKey: abCDEFghijklmnOPqRstuVWXYz1234(改行)
        X-PostSig: ZXCvBNMaSdfGhJ1klq2Wert3yUiop4<><?URLDEC+?><?BBS=?><><?KEY=?><><?TIME=?><><?FROM=?><><?mail=?><><?MESSAGE=?><><?SUBJECT=?><?URLDEC-?><>Monazilla/1.00 ABCDEF/1.2.3<><><?TIME=?>.<?MSEC=?>(改行)
        
        下記設定内容の場合
        APIKey abCDEFghijklmnOPqRstuVWXYz1234
        HMKey ZXCvBNMaSdfGhJ1klq2Wert3yUiop4
        User-Agent: Monazilla/1.00 ABCDEF/1.2.3
  • API書込に対応したテンプレートを有効にします
    • 通信-書き込み関連の設定をするテンプレートタブ
    • エディットに上記内容のテンプレート内容をコピペする
    • テンプレート置換を許可するにチェックする
    • 反映する/閉じるボタンで保存する
  • 書き込んで確認します

まだAPI書込に対応していないBBS板に書き込みたい

pink板など(2022/4/8現在)

API書込対応テンプレート詳細説明

  • テンプレート-テンプレート詳細説明の抜粋です
  • 固定変数
    • APIKEY
      DAT関連のAPIKey設定内容 例 abCDEFghijklmnOPqRstuVWXYz1234
      X-APIKey: で使用
    • HMKEY
      DAT関連のHMKey設定内容 例 ZXCvBNMaSdfGhJ1klq2Wert3yUiop4
      X-PostSig: ハッシュ値作成に使用
    • MONAKEY
      書き込み識別子
      X-MonaKey: で使用
      X-PostSig: ハッシュ値作成に使用
      例 初回 00000000-0000-0000-0000-000000000000
      例 書き込み確認画面で付与 123456789abcdef123456789abcdef123456789abcdef123456789abcdef1234
    • MSEC
      ミリ秒
      値は000-999のランダム
      X-PostNonce: で使用	例 632
      X-PostSig: ハッシュ値作成に使用
    • URLDEC+
      出力値のURLデコードを有効にする
      X-PostSig: ハッシュ値作成に使用
    • URLDEC-
      出力値のURLデコードを無効にする
      X-PostSig: ハッシュ値作成に使用
    • TRIM+
      出力値の前後空白除去を有効にする
      X-PostSig: ハッシュ値作成に使用
    • TRIM-
      出力値の前後空白除去を無効にする
      X-PostSig: ハッシュ値作成に使用
  • ヘッダ変数
    • X-PostSig:
      API書込が正しいものか判定するためのハッシュ値
      特定順番の書式文字列をHMkeyを使用計算して設定します
      <>があれば書式文字列とみなしてX-PostSig:ハッシュを作成置換します
      書式
      HMKEY<>BBS<>KEY<>TIME<>FROM<>mail<>MESSAGE<>SUBJECT<>User-Agent<><>TIME.milisec
      例
      X-PostSig: 1234567890abcdef123457890abcdef1234567890abcdef1234567890abcdef1
    • X-APIKey:
      書き込みAPIKey
      例
      X-APIKey: abCDEFghijklmnOPqRstuVWXYz1234
    • X-PostNonce:
      X-PostSig: ハッシュ値作成用途ランダム値
      書式
      UNIXTIME.milisec
      例
      X-PostNonce: 1234567890.123
    • X-MonaKey:
      書き込み識別子
      X-PostSig: ハッシュ値作成に使用
      例
      X-MonaKey: 00000000-0000-0000-0000-000000000000 初回
      X-MonaKey: 123456789abcdef123456789abcdef123456789abcdef123456789abcdef1234 書き込み確認画面で付与 

UTF-8書き込み対応

  • テンプレートを使用しない場合はUTF-8書き込みに対応しません
  • API書込では文字コードUTF-8が必要なようです
  • リクエストボディURLエンコード文字列をURLデコード+UTF-8変換+再URLエンコードします
    条件
    テンプレートを使用している
    リクエストにContent-Type: application/x-www-form-urlencodedがある
    リクエストcharsetにUTF-8がない
    テンプレートContent-Type: にcharset=UTF-8がある

X-MonaKeyの初期化/任意値の設定

  • MonaKeyをクリアするメニューで初期化できます
  • 通信-書き込み関連の設定をする-テンプレートタブ-X-MonaKeyでも任意値設定/クリアできます

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022.04.11