プロバイダ比較
Telegram 認証
Telegram は code(認証コード)、qrcode(QR コード)、session(セッション取り込み)の 3 つのフローに対応します。すべて /v1/accounts と標準認証エンドポイント(/auth/start、/auth/code、/auth/password、/auth/qr/start、/auth/qr/check、/auth/session)を使います。
code
認証コードフロー:サーバーが Telegram にコードを要求し、ユーザーが SMS またはアプリ内で受け取って送信し直します。
- 1. POST /v1/accounts に provider=telegram、auth_mode=code、provider_data に api_id / api_hash / phone を入れて送信。
- 2. POST /v1/accounts/{account_id}/auth/start で Telegram に認証コードを送らせる。
- 3. ユーザーが受け取ったコードを POST /v1/accounts/{account_id}/auth/code で送信。
- 4. 2FA が有効な場合は status=awaiting_password が返るので、POST /v1/accounts/{account_id}/auth/password でパスワードを送信。
- 5. 成功したら POST /v1/accounts/{account_id}/runtime/start でアカウントをオンライン化。
provider_data.api_id— my.telegram.org で取得した Telegram App ID。Telegram の 3 フローで必須。provider_data.api_hash— my.telegram.org で取得した Telegram App Hash。Telegram の 3 フローで必須。provider_data.phone— E.164 形式の電話番号。code フローでのみ必要。
qrcode
QR コードフロー:QR トークンを取得し、ユーザーに Telegram アプリで読み取らせます。
- 1. POST /v1/accounts に provider=telegram、auth_mode=qrcode、provider_data.api_id / api_hash を指定。
- 2. POST /v1/accounts/{account_id}/auth/qr/start を呼ぶと、表示用の QR トークンが返る。
- 3. POST /v1/accounts/{account_id}/auth/qr/check を status=authorized になるまでポーリング。QR は約 30 秒で失効するので、その都度 qr/start を再実行。
- 4. 成功したら POST /v1/accounts/{account_id}/runtime/start。
provider_data.api_id— my.telegram.org で取得した Telegram App ID。Telegram の 3 フローで必須。provider_data.api_hash— my.telegram.org で取得した Telegram App Hash。Telegram の 3 フローで必須。
session
セッション取り込みフロー:既に認証済みの Telegram アカウントを UnifyPort に取り込みます。
- 1. POST /v1/accounts に provider=telegram、auth_mode=session を指定。
- 2. POST /v1/accounts/{account_id}/auth/session に params.session_url を渡し、ダウンロード可能な .session ファイルを指す。
- 3. インポートのレスポンスでセッションの有効性を確認したら、POST /v1/accounts/{account_id}/runtime/start。
params.session_url— 既存の Telegram セッションの URL または参照。
注記
- 2FA パスワードは試行ごとにステートレスです。間違えた場合は cancel してから /auth/qr/start または /auth/start をやり直してください。
- QR トークンは約 30 秒で失効します。失効したら qr/start を呼び直して更新し、UI で QR を再描画してください。
- アカウント構成時に webhook URL が自動注入されます。認証状態の遷移とログインイベントは受信メッセージと同じ webhook エンドポイントに届きます。