# talk.jp

## API認証やログインの有無による違い

| API認証 (v1/auth) | ログイン (v1/login) | datダウンロードの挙動 | 書き込みの可否 |
| :--- | :--- | :--- | :--- |
| 未認証 | 未ログイン/ログイン中 | JSONを取得しdatに変換（※1） | 不可（※2） |
| 認証済 | 未ログイン | datを直接ダウンロード | 可（※3） |
| 認証済 | ログイン中 | datを直接ダウンロード | 可（※4） |

- ※1 datダウンロードと比較すると以下の制限や差異あり
  - メール欄の情報が復元できません
  - 書き込み時刻のミリ秒情報が提供されないため、ダミー値（.00）で補完されます
  - 数値文字参照の表現形式に一部差異が生じる場合があります（内部的な話で見た目は変わらないはず）
- ※2「Sidが指定されていません」のエラーになる
- ※3 匿名での書き込みのみ
- ※4 書き込みフォームの「アカウント連携する」にチェックを入れるとTIDが表示される書き込み、チェックを入れないと匿名での書き込み

## 設定およびAPI認証とログイン

ユーザ設定の「2ch API」にあるtalkapi_useを1にするとログイン画面に「talk API 認証管理」が表示されるようになります。
「talk API 認証管理」からAPI認証とログインが出来ます。

初回書き込み時に確認画面が表示されそのときtalk.jpから送られてくるX-Write-Keyは db/p2_keys.sqlite3 で永続化しています。
設定管理の「履歴・キャッシュの削除」で「Key」を選択して削除するとクリア出来ます。

## 書き込み時の確認画面について

X-Write-Keyがない状態だから書き込みをすると確認画面が2回表示されるような動きになることがあります。

1回目の確認画面でX-Write-Keyが送られてきて、
2回目の確認が目でX-Write-Key-Extend-Tokenが送られてきて、
次にやっと書き込み出来るというような流れになるようです。

書き込み時に良く分からないエラーが起きた場合、表示された通信内容を rep2 スレに書けば何かコメント出来るかも。

## ログインについて

ログインすることでTalkプレミアムの効果が効いているかは未確認です。

API認証なしでログインすれば書き込みできたりしないかやって見ましたが駄目みたいです。
他のエンドポイントがないか探ってみたけど見つけられず。

