인스타그램 원박스용 앱 토큰 설정하기

:warning: 이 가이드가 처음 작성된 이후의 주요 업데이트 사항:

  1. 앱 리뷰(App Review)가 이제 필수입니다. 2021년 9월부터 Meta는 앱이 App Review를 통과하고 oEmbed Read 권한(2025년 4월 8일 이후 생성된 앱의 경우 Meta oEmbed Read로 명명됨)에 대한 승인을 받아야 합니다. 이를 수행하지 않으면 oEmbed API 호출이 실패합니다. 승인에 대한 팁은 Meta의 App Review 제출 가이드를 참조하십시오.

  2. Instagram 원박스(onebox)가 올바르게 렌더링되지 않을 수 있습니다. 2025년 11월 3일부로 Meta는 Instagram oEmbed 응답에서 thumbnail_url, thumbnail_width, thumbnail_height, author_name 필드를 제거했습니다. Discourse의 Instagram 원박스 코드는 현재 이러한 필드에 의존하고 있으며(lib/onebox/engine/instagram_onebox.rb), 이로 인해 깨지거나 빈 임베드가 생성될 수 있습니다.

  3. 게시물(post) 및 IGTV URL만 지원됩니다. Discourse는 현재 Instagram /p/(게시물) 및 /tv/(IGTV) URL만 원박스로 처리합니다. 릴스(Reels)(/reel/) URL은 지원되지 않습니다.

  4. Facebook Developer Console UI가 크게 변경되었습니다. 아래 스크린샷은 2020년 12월에 촬영되었는데, 그 이후로 UI가 크게 달라졌습니다. 일반적인 단계는 유사하지만, 정확한 화면과 옵션은 다르게 보일 수 있습니다.


이미 Discourse 사이트에 연결된 Facebook 앱이 있다면 Facebook 앱에 oEmbed 추가 섹션으로 스크롤하십시오.

Facebook Developer 계정과 Facebook 앱이 없는 경우:

https://developers.facebook.com/으로 이동하십시오. 현재 로그인되어 있지 않으면 Facebook 계정에 로그인하도록 안내됩니다. 이전에 개발자 계정으로 전환하지 않은 경우 Facebook 계정을 개발자 계정으로 '전환’하라는 요청을 받을 수 있습니다. 전화번호를 추가하거나 기타 단계를 완료하여 Facebook에서 계정을 인증해야 할 수도 있습니다. 안내에 따라 Facebook이 요구하는 사항을 수행하기만 하면 됩니다.

Facebook Developer 계정이 있으면 Facebook Developer 홈 화면에서 'My Apps’를 클릭하십시오:

…그리고 'Create App’을 클릭하십시오:

앱 유형으로 'Something Else’를 선택하고 'Continue’를 클릭하십시오:

'App Display Name’과 'App Contact Email’을 입력하십시오. 약관 및 정책을 읽은 후 'Create App’을 클릭할 수 있습니다:

로봇인 경우: 볼 것이 없습니다. 삐 부루 부루. :robot:

로봇이 아닌 경우: "I’m not a robot"을 클릭하고, 안내에 따라 'Submit’을 클릭하십시오.

축하합니다! 이제 Facebook 앱이 있습니다!

Facebook 앱에 oEmbed 추가:

제품 목록 하단으로 스크롤하여 'oEmbed’를 찾은 후 'Set Up’을 클릭하십시오:

oEmbed 제품 사용 방법에 동의하는 경우 확인란을 클릭한 후 'Confirm’을 클릭하십시오:

oEmbed 제품이 추가되었습니다. 'Settings’를 클릭하십시오:

'Display Name’과 'Contact Email’은 이미 입력되어 있을 것입니다. 'Privacy Policy’와 'Terms of Service’의 URL을 입력해야 합니다. 사용 가능한 옵션 목록에서 'Category’를 선택하십시오. 모든 것이 만족스러우면 'Save Changes’를 클릭하십시오:

화면 상단의 토글을 클릭하여 ‘In development’ 모드에서 ‘Live’ 모드로 변경하십시오:

'Switch Mode’를 클릭하십시오:

앱 리뷰에 앱 제출 (2021년부터 필수):

앱이 프로덕션 환경에서 oEmbed API에 액세스하려면 App Review에 제출하고 oEmbed Read 권한(2025년 4월 8일 이후 생성된 앱의 경우 Meta oEmbed Read)을 요청해야 합니다.

  1. 앱 대시보드에서 App Review → Permissions and Features로 이동하십시오.
  2. oEmbed Read(또는 Meta oEmbed Read)를 찾아 Request를 클릭하십시오.
  3. 요청 버튼이 활성화되기 전에 성공적인 테스트 API 호출을 먼저 수행해야 할 수 있습니다. 첫 번째 API 호출 후 최대 24시간이 소요될 수 있습니다.
  4. 제출할 때, Instagram 임베드가 포함된 Discourse 사이트의 URL을 제공하고, 사이트가 Discourse 포럼 소프트웨어를 사용하여 oEmbed API로 Instagram 게시물을 임베드한다고 설명하십시오.

상세한 제출 가이드는 Meta의 oEmbed 문서를 참조하십시오.

앱 액세스 토큰 생성:

이 모든 작업을 완료했으므로, 이제 Facebook의 App Access Tokens에 대한 지침을 따르면서 앱 토큰을 생성할 수 있습니다. ‘App ID’ 필드의 값과 ‘App Secret’ 필드의 값이 필요합니다. App Secret를 얻으려면 'Show’를 클릭하십시오. 재인증 등을 요청받을 수 있지만, 복사할 수 있는 긴 16진수 값이 생성되어야 합니다:

Facebook 문서에 따르면, 토큰을 생성하려면 이러한 값을 Facebook에 전송해야 합니다. curl 사용에 익숙합니까? 좋습니다! 다음을 제안합니다(위 화면에서 복사한 값으로 {your-app-id}와 {your-app-secret}를 대체하십시오).

curl -X GET "https://graph.facebook.com/oauth/access_token?client_id={your-app-id}&client_secret={your-app-secret}&grant_type=client_credentials"

대신, 두 값을 대체한 후 URL만 브라우저에 복사해도 작동할 수 있습니다:

https://graph.facebook.com/oauth/access_token?client_id={your-app-id}&client_secret={your-app-secret}&grant_type=client_credentials

Facebook은 다음과 같은 예시와 유사한 작은 JSON 조각으로 응답합니다:

{"access_token":"1234567890654321|c3bd55c09fc5e561552ad7a8717","token_type":"bearer"}

access_token의 값을 복사하십시오(따옴표 제외, 즉 제 예시에서는 1234567890654321|c3bd55c09fc5e561552ad7a8717), 그리고 Discourse 사이트의 설정으로 이동하십시오. Onebox 설정에서 facebook_app_access_token이라는 사이트 설정을 찾습니다. 이 필드에 ‘access_token’ 값을 붙여넣으십시오:

:white_check_mark: 을 클릭하면 … 완료입니다!

https://www.instagram.com/p/CIRhYzFM7Lu/와 같은 URL을 사이트의 게시물에 붙여넣으면 다음과 같은 아름다운 원박스가 생성되어야 합니다:

https://www.instagram.com/p/CIRhYzFM7Lu/

17개의 좋아요

새로운 oEmbed 읽기 기능 및 앱 심사 요구 사항

오늘, 2021년 6월 8일에 v11.0 버전의 Graph API 및 Marketing API를 발표했습니다. 이번 업데이트로 인해 oEmbed API에 접근할 수 있도록 하는 새로운 요구 사항이 도입되었습니다. 현재 일부 앱이 oEmbed API에 접근하고 있으며, 이러한 변경 사항의 영향을 받을 수 있습니다.

oEmbed API에 계속 접근하려면 2021년 9월 6일까지 앱을 심사 요청해야 합니다. oEmbed API에 대한 새로운 접근을 요청하려면 앱도 심사 요청해야 합니다.

자세한 내용은 업데이트된 요구 사항을 확인해 주세요. 2021년 9월 6일까지 oEmbed API 기능에 대한 앱 심사를 받지 않은 경우, 해당 앱은 이 기능에 대한 접근 권한을 상실합니다. 앱의 oEmbed 접근이 중단되지 않도록 가능한 한 빨리 앱 심사를 요청해 주세요.

Facebook 관리자들로부터 나온 새로운 규칙이네요. 방금 제 앱 두 개를 모두 심사 요청했습니다. Instagram 임베드가 포함된 공개 게시물을 찾아 해당 통합이 어떻게 작동하는지 직접 링크를 걸어 보여 드렸습니다. 이 정도면 충분할 것 같습니다.

8개의 좋아요


와우, 리뷰가 실패했네요.

제가 제출한 내용은 다음과 같습니다.

제출 내용 상세 정보

Facebook 리뷰어가 권한 또는 기능을 Facebook Platform Policy에 따라 사용하고 있는지 확인하기 위해 앱에 접근하거나 로그인할 수 있습니까?

네

플랫폼 설정

데스크톱

사이트 URL:https://fixed.org.au/

계정 불필요

  1. https://fixed.org.au/t/the-what-youve-done-to-your-bike-today-thread/40645/10218 방문
  2. 해당 페이지에 Instagram 게시물이 임베드되어 있습니다. 이 사이트는 Discourse 포럼 소프트웨어(https://discourse.org/)를 사용 중입니다.

Oembed Read

이 권한 또는 기능을 어떻게 사용하고 있는지 알려주세요

Discourse(https://discourse.org/)는 커뮤니티 게시물에 Instagram 및 Facebook 게시물을 임베드할 수 있으며, 이를 통해 사용자가 웹사이트에 머물면서 풍부한 콘텐츠를 감상할 수 있습니다.

Oembed URL

https://fixed.org.au/t/the-what-youve-done-to-your-bike-today-thread/40645/10218

방금 다시 제출했어요 (Oembed URL에 불필요한 텍스트가 들어 있었거든요) 그리고 승인받았어요!!! :smiley: 두 번째 앱도 승인을 기다리고 있어요…

3개의 좋아요

텍스트가 초기 검토 제출 시와 동일해 보입니다. 실패한 검토에 비해 어떤 추가 정보를 제공했는지 자세히 설명해 주실 수 있나요?

추가로: FB 로그인 데이터를 포럼에 전달했나요, 아니면 하지 않았나요?

1개의 좋아요

@znedw 제 질문은 여전히 유효합니다. 혹시 이 문제에 대해 everyone에게 도움이 될 통찰을 나눠주실 수 있을까요?

첫 번째 검토가 실패한 이유는 Oembed URL 필드에 불필요한 텍스트가 있었고, 양식이 제출 시 공백을 제거하기 때문에 URL이 작동하지 않았기 때문입니다… 이것이 시도들 사이의 유일한 차이점입니다.

아니요, 플랫폼 섹션(마법사 플랫폼을 추가해야 했음)에는 단순히

계정 필요 없음

이라고 적었습니다. FB 검토를 위해 discourse 계정을 설정하고 싶지 않아서, 우리 포럼에서 공개된 게시글 중 Instagram 이미지가 임베드된 것을 찾아서 사용했습니다. 이것이 통합 기능이 어떻게 작동하는지 충분히 보여줄 수 있을 것이라고 생각했습니다. 아마도 FB가 discourse 소스를 읽고 스스로 파악할 수 있을 거라고 생각합니다. :man_shrugging:

이 질문을 놓친 점 죄송합니다. 실제로 두 포럼 모두에 변경 사항을 가하지 않았습니다. 위에서 언급했듯이 Instagram 이미지가 임베드된 포럼 게시글을 찾아서 FB의 앱 검토 마법사를 진행했을 뿐입니다.

3개의 좋아요

@znedw님, 안녕하세요. 가이드를 따라 진행했고, 24시간 후에 앱 리뷰가 승인되었습니다.

다만, 폼에서 해당 필드에 우리 도메인의 주제 링크를 입력하지 못해서, 임베드된 Instagram 게시물의 직접 링크를 oEmbed-URL 필드에 입력해야 했습니다. 아마도 그 부분이 변경되었을 수도 있습니다.

나머지는 전부 가이드에 적힌 표현 그대로 따라갔고, 잘 작동했습니다.

1개의 좋아요

간단한 질문: 프로세스가 "Instagram Basic Display"로 변경된 건가요, 아니면 제가 정말로 눈이 먼 건가요? oEmbed 옵션을 찾을 수 없기 때문에, 정의상 가장 가까운 것으로 Instagram Basic Display라고 추정하고 있습니다.

다음과 같이 인용합니다:

Instagram Basic Display를 사용하면 앱이 Instagram Basic Display API에 액세스할 수 있으며, 이를 통해 앱 사용자의 Instagram 계정 기본 데이터에 대한 읽기 전용 액세스 권한을 제공합니다.

이 탭을 사용하여 API의 인가 창을 구성하여 사용자로부터 권한을 받을 수 있으며, Live Mode로 전환할 준비가 되면 앱을 App Review에 제출할 수 있습니다.

Basic Display는 인증 도구가 아님을 유의하세요. API가 반환하는 데이터는 앱 사용자를 인증하거나 앱에 로그인하는 데 사용할 수 없습니다. 앱이 사용자 인증에 API 데이터를 사용하는 경우 App Review 과정에서 거부됩니다. 인증 솔루션이 필요하면 대신 Facebook Login을 사용하세요.

하지만, 여기 나열되지 않은 다른 URL(예: 아래)이 필요하므로 확실하지 않습니다:

Client OAuth Setting

Deauthorize Callback URL


(아마도 변경된 부분이 있는 것 같습니다. 여기에서 작동하지 않는 것 같거든요?)

https://www.instagram.com/p/CIRhYzFM7Lu

3개의 좋아요

제가 볼 수 있는 한, 여전히 oEmbed read에 advanced access가 적용되어 있습니다.

1개의 좋아요

아, 그렇군요. 그럼 튜토리얼과는 차이가 있네요.

대시보드에서 다른 기능(UI에서 "Products"라고 표시됨)처럼 추가하는 대신, 이제는 “App Review” 메뉴의 “Request” 섹션에서 요청해야 합니다. 기능을 선택하고 검토를 제출하면 됩니다.

이 때문에 프로세스가 약간 구멍이 난 것처럼 느껴지는데, 유효한 oEmbed 링크를 요청해서 승인하는데… 기능이 승인되지 않아서 실제로는 작동하지 않거든요… :sweat:

4개의 좋아요

이제 내 계정에서는 정상적으로 작동합니다. 필요한 사항을 정리해서 알려드릴게요. 저는 기술에 그다지 밝지 않아서 많은 질문에 답하기는 어려울 것 같지만, 설정을 최대한 비슷하게 복사해서 모든 것이 정상 작동하는지 확인해 보세요.

페이스북 로그인(인스타그램 그래프 API가 실제로 필요한지는 잘 모르겠습니다)이 모두 필요합니다. 디스코urs 설치 환경에서 페이스북 로그인이 정상 작동하는지 확인해 주세요.

페이스북 로그인 설정:

기본 설정:

고급 설정:

3개의 좋아요

여러분 안녕하세요, 오늘부로 @Iceman 님의 설명이 여전히 정확하다는 것을 알려드리고자 합니다.

가이드(:point_up:)에서와 같이 일부 페이지 레이아웃이 수정되었지만, 주요 차이점은 oEmbed가 앱이 App Review를 통과한 이후에 요청해야 한다는 점입니다.

“App Review” 메뉴에서 요청을 할 수 있습니다:

제 앱은 아직 App Review를 통과하지 못했지만, @undasein 님이 이 가이드와 https://stackoverflow.com/questions/67998234/starting-using-instagram-oembed-feature 의 조언을 받아 최근 성공적으로 동작하게 하셨습니다.


여러분의 `그램 공유에 행운을 빕니다! :slight_smile:

3개의 좋아요

제 요청에서는 복잡한 작업을 하지 않았습니다. 단순히 "포럼에 Instagram 게시물을 임베드하고 싶습니다"라고 적었을 뿐인데, 하루 만에 승인되었습니다.

1개의 좋아요

고급 oEmbed 읽기 권한에 어떻게 접근할 수 있나요? 버튼이 비활성화되어 있어 요청조차 할 수 없습니다. Graph API를 통해 몇 가지 작업을 시도해 보았지만, 24시간이 지나도 아무런 변화가 없습니다.

일부 사용자는 다른 이유(예: Facebook 로그인)로 앱을 검토에 제출하여 이 문제를 우회했습니다. 앱이 승인되면 "Oembed Read"와 같은 일부 기능을 요청할 수 있습니다.

계정에 무슨 일이 일어나고 있는지 이해하려면 플랫폼 지원 채널에 문의해 보시는 것이 좋습니다. :+1:

1개의 좋아요

oEmbed가 더 이상 존재하지 않는데, 대신 무엇을 넣어야 하나요?

oEmbed 옵션을 찾을 수 없는데, 어떤 것을 선택하셨나요?

@danielabc 님, 앱이 앱 리뷰를 통과하셨나요?

1개의 좋아요

옵션으로 가면 버튼이 꺼져 있고, 클릭할 수 없어요

옵션으로 가면 버튼이 꺼져 있고, 클릭할 수 없어요

90일 동안 사용되지 않아서 내 접근 권한이 취소되었습니다. 즉, 내 포럼에서 최근 인스타그램 링크를 게시한 사람이 없다는 뜻인 것 같습니다.

현재 oEmbed Read 권한의 상태는 다음과 같습니다:

이 권한에 대한 고급 접근을 요청하려면 성공적인 테스트 API 호출을 수행해야 합니다. 첫 번째 API 호출 후 이 버튼이 활성화되는 데 최대 24시간이 걸릴 수 있습니다. 테스트에 대해 알아보기

이 맥락에서 Discourse를 사용하여 고급 접근을 다시 요청하기 위해 실제로 API 호출을 어떻게 수행해야 하는가요? :thinking:

2개의 좋아요