このドキュメントが更新されました。
日本語への翻訳がまだ完了していません。
英語の最終更新: 5月1日
日本語の最終更新: 2023/01/20

Limited Login FAQ

In response to the upcoming changes to ATT enforcement, we made changes to the iOS SDK and the SDK no longer provides valid user access tokens in scenarios where the user opts out of ATT. The access token validation or Graph API requests may throw errors like OAuthException - “Invalid OAuth access token - Cannot parse access token”. Our recommendation is that users integrate Limited Login following the official documentation:

When users opt out of ATT, all Facebook Login traffic will be performed on the Limited Login domain. Limited Login does not support business permissions. Our recommendation is that developers integrate Limited Login following the official documentation. See limited login supported permissions in this document.

When users opt out of ATT, all Facebook Login traffic will be performed on the limited login domain via the in-app browser. Limited Login does not support fast app switch (that is, redirecting to fb app to login). See limitations section of the Limited Login for iOS document.

We made changes both to the iOS SDK and our core login systems to support the privacy manifest requirements based on the upcoming App Transparency Tracking enforcement so that iOS users who have opted out of ATT are able to use FBLogin. As a result, we do not plan to release the privacy manifest as part of a minor update.

ユーザーが認証され、認証トークンの共有インスタンスにデータが入力されます。認証呼び出しからの追加情報に基づいて、共有ユーザープロフィールインスタンスの基本フィールドにデータが入力されます。

アクセストークンがないため、グラフリクエストは失敗します。アクセストークンを取得するには、デフォルトでトラッキングが有効な従来のログイン方法を再利用するか、トラッキングの有効化を指定した構成でFBSDKLoginManagerlogInFromViewController:configuration:completion:を呼び出します。この呼び出しを行うと、ユーザーがトラッキングされることに注意してください。

To access the Graph API, you need an access token. Either reuse the classic login method (defaults tracking to enabled), or call FBSDKLoginManager logInFromViewController:configuration:completion: with a configuration that specifies that tracking is enabled. This will allow you obtain an access token that can be used for Graph API calls. Be aware that when you do this, users are tracked. Be aware that Limited Login safeguards are not supported in this context.

When you use Limited Login to request user_friends from a user, we provide you with a list of app scoped IDs (ASIDs) associated with the friends of the authorizing user, if the friends have also granted your app the user_friends permission. Depending on how you have implemented Limited Login, some of the ASIDs on this list may represent other users that have connected to your app using Limited Login. To ensure that Limited Login safeguards are maintained for such users, do not make Graph API calls using their ASIDs. Instead, continue to rely on Limited Login for these users.

はい。次の2つの公開プロパティが追加されました。

  • loginTracking: ログイン試行に使用するトラッキング設定を取得または設定するために使用できます。デフォルトは.enabledです。

  • nonce: ログイン試行に使用するノンス(省略可)を取得または設定するために使用できます。有効なノンスは、空白文字を含まない空でない文字列であることが必要です。注: 無効なノンスは設定されません。代わりに、デフォルトの一意のノンスがログイン試行に使用されます。

ユーザーから見ると変更はありません。内部的には、現在のAuthenticationTokenAccessTokenProfileがnilに設定されます。

現時点では、tvOSでは制限付きログインを使用できません。

いいえ。React Native SDKはSDK v9.0で廃止されたため、このSDK用の制限付きログインの開発は行いません。詳しくは、React Nativeのドキュメントをご覧ください。

There is no impact to existing logged in users from adopting Limited Login in your app. If you would like to take advantage of Limited Login safeguards for existing, logged-in users, you must log them out by so they can log back in with Limited Login.

いいえ。制限付きログインフラグはデバイス固有です。

いいえ。fb_login_idは制限付きログインモードでも存続します。制限付きログインモードでは、ユーザーアクセストークン(別個のエンティティ)がOIDCトークンと交換されます。

制限付きログインモードでは、基本プロフィール(名前および写真)とメールのアクセス許可のみがサポートされます。アプリにビジネスアクセス許可が必要な場合、制限付きログインでそれらをリクエストすることはできません。ユーザーは、次の方法により、従来のログインでビジネスアクセス許可を付与できます。

  • ウェブを介してアプリにログインする。
  • 従来のログインモードでiOSを介してアプリにログインする。
  • Androidを介してアプリにログインする。

Yes, but this will require the use of an app access token to request the token_for_business field on the User node. Limited Login safeguards are not supported in this context. For apps that are associated with your business by means of Business Manager, you can use the app-scoped ID (ASID) included in the OIDC token returned after a successful login to get a unique string for a user. Using your app's app access token, request the token_for_business field on the User node and pass in the user's app-scoped ID. This call returns a string which is the same for this user across all the apps managed by the same Business Manager.

GET /ASID?fields=token_for_business

This returns the values.

{
  "id": "1234567890"
  "token_for_business": "weg23ro87gfewblwjef"
}

Usage notes:

  • The person being queried must have logged into this app.
  • If the owning business changes, the value of token_for_business will also change
  • If you request the token_for_business field and the app is not associated with a Business Manager, the call returns an error.
  • The value returned by token_for_business is a token, not an ID - it cannot be used directly against the Graph API to access a person's information. You should still store the ID in your database.