비즈니스용 Facebook 로그인은 기술 제공업체와 비즈니스 클라이언트의 자산에 액세스해야 하는 비즈니스 앱 개발자를 위해 고안된 인증 및 승인 솔루션입니다. 이는 Facebook 로그인의 대안입니다. 기술 제공업체가 아니거나 다른 비즈니스에서 사용할 비즈니스 앱을 개발하고 있지 않은 경우, 대신 Facebook 로그인을 인증 솔루션으로 사용하세요.
비즈니스용 Facebook 로그인은 Facebook 로그인과 달리, 액세스 토큰 유형, 자산 유형, 앱에 필요한 권한을 지정하고 세트(구성)로 이를 저장할 수 있습니다. 그런 다음, 이 세트를 비즈니스 클라이언트에게 제공하면 해당 비즈니스 클라이언트가 플로를 완료하고 자신의 비즈니스 자산에 대한 액세스 권한을 앱에 부여할 수 있습니다. 따라서 비즈니스가 일반적으로 비즈니스 앱에 필요하지 않은 특정 정보 카테고리에 권한을 부여하는 기능이 삭제됩니다. 그러면 앱의 요구 사항에 따라 여러 가지 액세스 토큰 중에서 선택할 수 있습니다.
사용자 데이터에 액세스할 수 있는 대부분 앱은 정기 검수를 거쳐야 합니다. 그러나 앱에 비즈니스 권한/기능만 필요할 경우 비즈니스용 Facebook 로그인을 설치할 수도 있습니다. 그러면 정기 검수를 거쳐야 하는 앱의 요구 사항이 줄어들게 됩니다.
비즈니스 클라이언트에게 다음 권한을 요청할 수 있습니다. Facebook 로그인과 달리, 비즈니스용 Facebook 로그인은 비즈니스 클라이언트가 구성에 지정하는 모든 권한을 부여해야 합니다.
email
및 public_profile
권한은 자동으로 모든 앱에 부여됩니다. 그러나 각 앱 설치에 대해 지원되는 다른 권한 하나 이상과 함께 사용해야 합니다.
public_profile
권한은 모든 앱에 자동으로 부여되지만 scope
매개변수에서는 반환되지 않습니다. 단, email
을 제외한 하나 이상의 다른 지원되는 권한을 앱 사용자가 부여한 경우에는 예외입니다.
사용 가능한 권한 | 사용자 액세스 토큰 | 비즈니스 통합 시스템 사용자 액세스 토큰 |
---|---|---|
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
commerce_account_manage_orders | ✓ | ✓ |
commerce_account_read_orders | ✓ | ✓ |
commerce_account_read_reports | ✓ | ✓ |
commerce_account_read_settings | ✓ | ✓ |
commerce_manage_accounts | ✓ | ✓ |
email * | ✓ | 해당 없음 |
✓ | ✓ | |
instagram_content_publish | ✓ | ✓ |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
instagram_shopping_tag_products | ✓ | ✓ |
✓ | ✓ | |
manage_fundraisers | ✓ | ✓ |
✓ | ✓ | |
page_events | ✓ | ✓ |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
private_computation_access | ✓ | ✓ |
✓ | 해당 없음 | |
✓ | ✓ | |
✓ | ✓ | |
read_audience_network_insights | ✓ | ✓ |
✓ | ✓ | |
✓ | ✓ |
비즈니스용 Facebook 로그인을 사용하여 비즈니스 통합 시스템 사용자 액세스 토큰이나 사용자 액세스 토큰을 가져올 수 있습니다. 비즈니스용 Facebook 로그인으로 전환하더라도 기존의 액세스 토큰은 영향받지 않습니다.
비즈니스 통합 사용자 액세스 토큰은 비즈니스용 Facebook 로그인에서 생성되며, 앱이 앱 사용자의 입력 내용을 사용하거나 나중에 재인증할 필요 없이 비즈니스 클라이언트의 광고 개체나 페이지에 대해 프로그래밍 방식의 자동 작업을 수행할 경우에 사용해야 합니다. 예를 들면 다음과 같습니다.
비즈니스 클라이언트로부터 비즈니스 통합 사용자 액세스 토큰을 얻으려면 다음 요건을 충족해야 합니다.
비즈니스 통합 시스템 사용자 액세스 토큰 플로를 테스트하려면 테스터가 앱에서 역할을 부여받아야 합니다.
정규 시스템 사용자 | 비즈니스 통합 시스템 사용자 | |
---|---|---|
대표 | 비즈니스 관리자가 소유하거나 관리하는 자산으로 API 요청을 보내는 서버나 소프트웨어를 대표합니다. | 기술 제공업체의 앱 설치를 통해 클라이언트 비즈니스에서 초기화한 기술 제공업체 통합의 인프라에 포함됩니다. |
액세스 | 동일한 비즈니스 내에 있는 비즈니스 사용자만 액세스할 수 있습니다. | 기술 제공업체만 액세스할 수 있습니다. |
토큰 무효화 | 해당 사항 없음. | 액세스 토큰은 비즈니스 관리자의 시스템 사용자 탭을 통해 무효화할 수 없습니다. 대신 비즈니스 클라이언트는 비즈니스 관리자 > 비즈니스 설정 > 통합 > 연결된 앱 탭으로 이동해서 앱 삭제 버튼을 클릭하여 앱을 삭제해야 합니다. 그러면 토큰이 무효화됩니다. |
특정 기술 제공업체, 일반적으로 각 클라이언트 비즈니스에 하나의 비즈니스 통합 시스템 사용자 액세스 토큰을 사용하지 않고 목적이나 부서에 따라 다른 액세스 설정이 필요한 대규모 조직의 경우, 운영의 확장성 또는 보안을 향상하기 위해 각 클라이언트 비즈니스에 여러 세분화된 비즈니스 통합 시스템 사용자 액세스 토큰을 제공합니다.
이 엔드포인트를 사용하면 개발자가 다음과 같이 기존 시스템 사용자 액세스 토큰을 관리할 수 있습니다.
개체 | 설명 |
---|---|
정수 | 필수. 최종 사용자가 비즈니스용 Facebook 로그인 플로를 통해 앱을 설치하면 마지막에 시스템 사용자 액세스 토큰이 생성되고 해당 토큰은 클라이언트가 선택한 비즈니스로 범위가 설정됩니다. |
문자열 | 필수. 이는 토큰 관리 API이므로 서버에서 보내는 호출의 보안을 강화하기 위해 액세스 토큰을 |
문자열 | 필수.
|
정수 | 선택 사항.
|
부울 | 선택 사항.
|
정수 | 선택 사항. 더욱 세분화된 토큰을 생성하고자 할 경우, 쉼표로 구분된 |
부울 | 선택 사항. 더욱 세분화된 토큰을 생성하고자 할 경우, 쉼표로 구분된 |
부울 | 선택 사항. 새 토큰을 생성하고자 할 경우, 60일 이내에 만료되는 토큰을 만들 수 있습니다. |
curl -i -X POST \ 'https://graph.intern.facebook.com/v17.0/2738613836382965/system_user_access_tokens?appsecret_proof=<app_secret_proof_sanitized>& access_token=<access token sanitized>& system_user_id={system_user_id}& fetch_only=true'
{ "access_token": "{access_token}" }
앱이 사용자의 입력에 따라 실시간으로 조치를 취하는 경우 사용자 액세스 토큰을 사용해야 합니다. 예를 들어 앱에서 사용자가 페이지에 콘텐츠를 게시하기 위해 텍스트를 입력하고 버튼을 클릭하도록 요구하는 경우 사용자 액세스 토큰을 사용합니다. Meta 비즈니스 계정에서 관리자 권한이 필요한 API를 사용해야 하는 경우에도 사용자 액세스 토큰을 사용해야 합니다.
시스템 사용자 액세스 토큰 | 사용자 액세스 토큰 | |
---|---|---|
계정 연결 | 특정 사용자가 아니라 비즈니스 클라이언트의 비즈니스 계정과 연결합니다. 비즈니스 클라이언트의 관리자 그룹에 있는 관리자는 앱에 시스템 사용자 액세스 토큰을 부여할 수 있습니다. | 앱 사용자의 개인 계정과 연결합니다. |
OAuth 부여 유형 | 인증 코드만 사용합니다. | 기본적으로 묵시적입니다. 주로 웹 브라우저, 모바일 앱 등의 사용자 에이전트 기반 클라이언트에 사용됩니다. |
만료 및 갱신 | 일반적인 오프라인 서버 간 통신에는 만료 기한 없음을 기본값으로 설정합니다. | 온라인 활동(예: 웹 브라우저)에 대한 단기 실행 토큰입니다. |
액세스 지정 | 액세스는 승인 시점에 명시적으로 위임됩니다. 앱은 비즈니스용 Facebook 로그인 플로를 완료한 경우에만 비즈니스 클라이언트가 지정한 자산에 액세스할 수 있습니다. | 액세스 권한은 앱 사용자의 현재 계정 액세스 권한에서 상속됩니다. 앱 사용자가 현재 액세스하는 것과 동일한 비즈니스 자산에 액세스할 수 있습니다. |
비즈니스 클라이언트는 비즈니스 관리자 > 설정 > 비즈니스 설정 > 통합 > 연결된 앱으로 이동한 후 앱을 삭제하여 비즈니스 통합 시스템 사용자 액세스 토큰을 무효화할 수 있습니다.
사용자 액세스 토큰의 경우 비즈니스 클라이언트는 Facebook에서 설정 및 개인정보 보호 > 설정 > 보안 및 로그인 > 비즈니스 통합으로 이동하여 앱을 삭제할 수 있습니다.
비즈니스용 Facebook 로그인을 테스트하려면 비즈니스 유형 테스트 앱을 생성해야 합니다. 그러면 비즈니스용 Facebook 로그인이 자동으로 설치됩니다.
구성은 앱이 비즈니스 클라이언트에게 요구하는 토큰 유형, 비즈니스 자산 및 권한을 그룹화한 것입니다. 이는 사용자가 앱을 설치할 때 인증 및 승인 플로에서 사용자에게 표시됩니다. 여러 개의 구성을 만들어 앱의 요구 사항에 따라 서로 다른 사용자 세트에 표시할 수 있습니다. 구성을 만들려면 다음 단계를 수행합니다.
구성을 만들면 구성 ID가 생성되며, 이를 SDK와 함께(또는 수동으로) 사용할 수 있습니다.
WhatApp 임베디드 가입은 비즈니스 솔루션 제공업체(BSP)만 액세스할 수 있습니다.
whatsapp_business_management
및 whatsapp_business_messaging
권한을 선택합니다. 이 플로는 Instagram 그래프 API 사용에만 최적화되어 있습니다.
Facebook의 SDK를 사용하여 비즈니스용 Facebook 로그인 대화 상자를 호출하거나 수동으로 로그인 플로를 빌드하여 로그인 대화 상자를 호출할 수 있습니다.
Facebook의 임의 SDK를 사용하여 앱에 필요한 범위(권한) 리스트를 구성 ID와 앱 토큰에 필요한 OAuth 부여 유형으로 대체하면 로그인 대화 상자를 호출할 수 있습니다.
SDK에 익숙하지 않은 경우에는 먼저 JavaScript SDK를 설치하고 소비자 Facebook 로그인 제품을 사용해 본 다음, 진행하는 것이 좋습니다. 다음 예시는 SDK를 참조합니다.
시스템 사용자 액세스 토큰에 대한 구성을 사용하도록 수정된 JavaScript SDK의 FB.login()
메서드 예시는 다음과 같습니다. config_id
가 scope
(사용해서는 안 됨)를 대체하였고 response_type
이 code
로 설정되었습니다. SUAT은 인증 코드 부여 유형이 필요하기 때문입니다. override_default_response_type
은 true
로 설정해야 합니다. 이를 true로 설정하면 response_type
으로 전달된 응답 유형이 기본 유형보다 우선됩니다.
FB.login( function(response) [ console.log(response); ], [ config_id: '<CONFIG_ID>', response_type: 'code', override_default_response_type: true ] );
사용자가 로그인 대화 상자 플로를 완료하면 사용자가 리디렉션 URL로 리디렉션되고 코드가 포함됩니다. 그러면 Facebook 서버로 서버 간 호출을 수행하여 이 코드를 액세스 토큰으로 교환해야 합니다.
GET https://graph.facebook.com/v19.0
/oauth/access_token?
client_id=<APP_ID>
&client_secret=<APP_SECRET>
&code=<CODE>
이 단계에 대한 자세한 내용은 코드를 액세스 토큰으로 교환을 참조하세요.
사용자 액세스 토큰에 대한 구성을 사용하도록 수정된 JavaScript SDK의 FB.login()
메서드 예시는 다음과 같습니다. config_id
가 scope
를 대체했습니다(scope
를 포함해도 되지만 사용하지 않는 것이 좋음).
FB.login( function(response) { console.log(response); }, { config_id: '<CONFIG_ID>' // configuration ID goes here } );
사용자 액세스 토큰 구성을 사용하도록 수정된 JavaScript SDK의 로그인 버튼의 예시는 다음과 같습니다.
<fb:login-button config_id="<CONFIG_ID>" onlogin="checkLoginState();"></fb:login-button>
로그인 대화 상자를 수동으로 호출하는 방법에 대한 자세한 내용은 로그인 플로 수동으로 빌드하기를 참조하세요. 로그인 대화 상자를 호출하고 리디렉션 URL을 설정할 때는 구성 ID를 선택적 매개변수로 포함합니다(scope를 포함해도 되지만 사용하지 않는 것이 좋음).
config_id=<CONFIG_ID>
비즈니스용 Facebook 로그인은 모든 새로 만든 비즈니스 유형 앱에 제공됩니다. 기존 적격비즈니스 유형 액과 없음 유형 앱은 비즈니스용 Facebook 로그인으로 자동 전환되었거나 이를 옵트인할 수 있습니다.
앱이 비즈니스용 Facebook 로그인으로 전환할 자격을 충족하는 경우 다음 단계를 따르면 옵트인 배너를 볼 수 있습니다.
비즈니스용 Facebook 로그인으로 전환하려면 배너 안의 '옵트인' 버튼을 클릭해야 합니다. 이 앱과 연결된 테스트 앱도 자동으로 옵트인됩니다.
비즈니스용 Facebook 로그인으로 전환하고 나면 앱 유형이 비즈니스 유형으로 지정됩니다. 앱이 의도한 대로 작동하지 않을 경우에는 전환 후 30일 이내에 Facebook 로그인으로 각 앱을 롤백할 수 있으며, 최대 3번까지만 롤백이 가능합니다. 비즈니스용 Facebook 로그인의 로그인 대화 상자가 구성 ID를 통해 호출되고 Facebook 로그인으로 롤백하기로 결정한 경우, 로그인 대화 상자를 읽어들이지 못할 수 있습니다. Facebook 로그인은 'config_id' 매개변수를 지원하지 않으므로 'config_id' 매개변수를 'scope' 매개변수로 바꿔야 하기 때문입니다.
앱 설치 프로그램은 다음과 같은 이유로 오류 메시지를 보낼 수 있습니다.
잠재적 핵심 변경 사항:
비즈니스용 Facebook 로그인으로 전환한 후 앱이 의도한 대로 작동하지 않을 경우, 앱 대시보드 > 비즈니스용 Facebook 로그인 > 설정으로 이동하여 Facebook 로그인으로 전환 링크를 클릭하면 Facebook 로그인으로 롤백되어 이를 제거할 수 있습니다. 그러면 비즈니스용 Facebook 로그인 구성 환경을 개선하는 데 도움이 되는 설문조사가 표시됩니다. 각 앱은 비즈니스용 Facebook 로그인으로 전환한 후 30일 이내에 Facebook 로그인으로 롤백할 수 있고 최대 3회까지만 롤백이 허용됩니다.
비즈니스용 Facebook 로그인은 특정 권한 및 기능만 지원할 수 있습니다. 비즈니스용 Facebook 로그인에서 지원되지 않는 권한 또는 기능을 요청할 경우 앱이 비즈니스용 Facebook 로그인을 사용할 수 없습니다. email
및 public_profile
권한은 적어도 하나의 다른 지원되는 권한과 함께 요청해야 합니다.
앱이 옵트인할 수 없는 경우 새로운 비즈니스 유형 앱을 만듭니다. 그러면 비즈니스용 Facebook 로그인을 자동으로 사용할 수 있게 되며 앱 검수를 통해 지원되는 비즈니스 권한을 요청할 수 있습니다.
앱 기능에 필요한 최소 권한만 요청하세요. 각 권한과 기능이 필요한 이유에 대해 사용자에게 투명하게 밝히세요. email
및 public_profile
권한은 각 앱 설치에 대해 하나 이상의 다른 지원되는 권한과 함께 요청해야 합니다. 지원되는 권한을 확인하고 권한 요청을 번들링하는 구성을 만들면 더욱 맞춤화된 온보딩이 가능합니다.