メインコンテンツへスキップ

Documentation Index

Fetch the complete documentation index at: https://docs.sequence.xyz/llms.txt

Use this file to discover all available pages before exploring further.

Embedded WalletにX(旧Twitter)認証を組み込むには、アプリケーションでXのOAuth 2.0を利用する設定が必要です。

Sequence BuilderへのクライアントID追加

まず、X Developer Portalでアプリケーションを作成し、クライアントIDとクライアントシークレットを取得します。 アプリケーション作成後、クライアントIDをSequence Builderのプロジェクト設定に追加してください。
  1. Sequence Builderでご自身のプロジェクトにアクセスします。
  2. Embedded Walletの設定画面に移動します。
  3. 認証プロバイダーの一覧からX(Twitter)を選び、該当欄にクライアントIDを貼り付けます。
この手順は、アプリケーションからの認証リクエストをSequenceが正しく検証するために重要です。

SDKを使った認証

Xからアクセストークンを取得したら、Sequence WaaS SDKに渡してユーザーをサインインさせます。GoogleやEpic Gamesなど他のOIDCプロバイダーとは異なり、Xの場合はxAccessTokenパラメータを使用します。
await sequence.signIn({ 
  xAccessToken: 'YOUR_X_ACCESS_TOKEN' 
});
アプリケーションでサインインフローを実装する方法の詳細は、認証ドキュメントをご覧ください。

Xからアクセストークンを取得する方法

アクセストークンを取得するには、OAuth 2.0 PKCEフローを実装する必要があります。XのOAuth 2.0実装に関する問題に対応するため、Sequenceでは認証フローを円滑かつ確実に行うための独自プロキシサービスを提供しています。

Sequence X Auth Proxyの利用

api.x.comに直接リクエストを送る代わりに、OAuth 2.0フローを補助するSequenceプロキシURLを利用します。 OAuth 2.0 PKCEフローでトークン交換を行う際は、以下のURLを指定してください。
https://xproxy.sequence.xyz/api.x.com/2/oauth2/token

実装例

以下は、Sequenceプロキシを使ってX認証フローを実装する最小限の例です。
// This function constructs the authorization URL and redirects the user.
function redirectToXAuth() {
  const params = new URLSearchParams({
    response_type: 'code',
    client_id: 'YOUR_X_CLIENT_ID', // Replace with your X Client ID
    redirect_uri: 'YOUR_REDIRECT_URI', // Your callback URL
    scope: 'users.read email.read tweet.read', // Required scopes
    state: 'state', // A random string for security
    code_challenge: 'challenge', // A PKCE code challenge
    code_challenge_method: 'plain', // Use 'S256' in production
  });

  window.location.assign(`https://x.com/i/oauth2/authorize?${params.toString()}`);
}
本番環境のアプリケーションでは、より安全なS256code_challenge_methodをPKCEで利用してください。これはランダムなcode_verifier文字列を生成し、それをSHA-256でハッシュ化し、Base64-URLエンコードしたものをcode_challengeとして送信します。元のcode_verifierはトークンリクエスト時に送信します。

必要なスコープ

Xアプリケーションを設定し、ユーザーに認可を求める際は、最低限以下のスコープを含める必要があります。
  • users.read
  • email.read
  • tweet.read
tweet.readを必ず含めてください。X APIの仕様により、このスコープをリクエストしないと他のスコープが有効にならない場合があります。Sequenceがユーザーのツイートを取得することはありませんが、認証処理を正しく行うためにこの権限が必要です。