그래프 API 개요

그래프 API는 Facebook의 플랫폼에서 데이터를 가져오고 내보내는 기본 방법으로, 프로그래밍 방식으로 데이터를 검색하고, 새 소식을 게시하고, 광고를 관리하고, 사진을 업로드하고 앱에서 구현할 수 있는 다양한 작업을 수행하기 위해 사용할 수 있는 낮은 수준의 HTTP 기반 API입니다.

기본 사항

그래프 API라는 이름은 '소셜 그래프'에서 따온 것으로, 소셜 그래프는 다음 항목으로 구성되는 Facebook 정보를 나타냅니다.

  • 노드 - 기본적으로 사용자, 사진, 페이지, 댓글과 같은 "항목"입니다.
  • 에지 - 페이지의 사진, 사진의 댓글 등 "항목" 간의 연결입니다.
  • 필드 - 생일, 페이지의 이름 등 "항목"에 대한 정보입니다.

그래프 API는 HTTP 기반이므로 cURL, urllib 등 HTTP 라이브러리가 있는 모든 언어에서 사용할 수 있습니다. 이 API를 사용하여 다양한 작업을 수행할 수 있으며 자세한 내용은 아래 섹션에 설명되어 있습니다. 브라우저에서 직접 그래프 API를 사용할 수도 있습니다. 예를 들어, 그래프 API 요청은 다음과 같습니다.

GET graph.facebook.com
  /facebook/picture?
    redirect=false

대부분의 그래프 API 요청에는 액세스 토큰을 사용해야 합니다. 액세스 토큰은 앱에서 Facebook 로그인을 구현하여 생성할 수 있습니다.

이 개요에서는 그래프 API에서 데이터를 읽고 소셜 그래프에 게시하는 방법을 설명합니다.

구성 방식

자세한 내용은 그래프 API 사용 가이드에 설명되어 있지만, 일반적으로 노드 또는 해당 노드의 에지에 HTTP GET 요청을 보내 API를 읽을 수 있습니다.

거의 모든 요청이 graph.facebook.com에서 API에 전달됩니다. 유일한 예외는 graph-video.facebook.com을 사용하는 동영상 업로드의 경우입니다.

개체 ID

각 노드에는 고유한 ID가 있으며 이 ID는 그래프 API를 통해 해당 노드에 액세스하기 위해 사용됩니다. 노드/개체 ID 구조 또는 형식은 시간이 지남에 따라 변경될 가능성이 아주 높고 앱에서 현재 구조를 기반으로 가정해서는 안 되기 때문에 Facebook에서는 이를 문서화하지 않습니다.

ID를 사용하여 노드를 요청하는 방법은 다음과 같습니다.

GET graph.facebook.com
  /{node-id}

Id를 사용하여 에지를 요청하는 방법은 다음과 같습니다.

GET graph.facebook.com
  /{node-id}/{edge-name}

일반적으로 노드에 대한 매개변수를 사용하여 HTTP POST 요청을 보내 API에 게시할 수 있습니다.

POST graph.facebook.com
  /{node-id}

Id를 사용하여 에지를 요청하는 방법은 다음과 같습니다.

POST graph.facebook.com
  /{node-id}/{edge-name}

API를 통한 삭제는 동일한 엔드포인트에 HTTP DELETE 요청을 보내고 POST 요청을 통해 업데이트함으로써 이루어집니다.

API 버전

그래프 API에는 언제든지 액세스할 수 있는 여러 버전이 있습니다. 각 버전은 핵심 필드와 에지 작업의 집합으로 구성됩니다. 핵심 API는 릴리스 후 최소 2년간 해당 버전에서 사용할 수 있으며 수정되지 않습니다. 플랫폼 변경 사항에서 현재 어느 버전을 사용할 수 있는지 확인할 수 있습니다.

전체 에지나 노드가 핵심 요소가 아니어도 에지 내 특정 작업(예: 게시) 또는 노드 내 특정 필드가 핵심 요소가 될 수 있습니다. 이러한 핵심 API는 그래프 API 참조 문서 내에서 기호로 표시됩니다.

핵심 API 외 모든 항목은 확장 API라고 합니다. 이들 API는 여전히 버전이 지정된 경로를 통해 액세스되지만 Facebook의 플랫폼 로드맵에 발표되는 90일 마이그레이션에 따라 언제든지 수정하거나 삭제할 수 있습니다. 또는 간단히 다음 버전의 API에 포함할 수도 있습니다.

버전 지정에 대해서는 Facebook 가이드에서 자세히 알아볼 수 있습니다. 이 문서에서는 그래프 API의 특정 버전을 호출하는 방법을 설명합니다.

정말 간단합니다. 요청 경로 앞에 버전 식별자만 붙이면 됩니다. 예를 들어, v2.2를 호출하는 방법은 다음과 같습니다.

GET graph.facebook.com
  /v2.2/me

이 방법은 모든 버전에 적용되며, 일반적인 형식은 다음과 같습니다.

GET graph.facebook.com
  /vX.Y/{request-path}

여기서 X.Y는 필요한 버전입니다. Facebook은 사용 가능한 버전의 전체 리스트를 변경 사항에 게시합니다. 모든 그래프 API 참조 문서에는 버전별 정보가 제공되므로 해당 버전에 대한 문서를 참조하세요. 일부 버전에서는 노드와 에지가 삭제되고 일부 버전에서는 노드와 에지가 추가됩니다.

이제 API 요청을 해보겠습니다. 얼마나 간단하지 확인해보세요.

그래프 API 탐색기 읽어들이기

그래프 API를 이해하는 가장 쉬운 방법은 데이터를 검색, 추가, 삭제하기 위해 사용할 수 있는 낮은 수준의 도구인 그래프 API 탐색기와 함께 사용하는 것입니다. 그래프 API 탐색기는 언제든지 사용할 수 있는 매우 편리한 도구이며 Facebook과 통합할 수 있습니다. 그래프 API 탐색기로 이동하세요.

그래프 API 탐색기

기본 사용자 액세스 토큰 생성

앱을 만들려면 액세스 토큰 및 Facebook 로그인을 사용하여 액세스 토큰을 생성하는 방법을 알아야 합니다. 우선은 그래프 API 탐색기를 통해 간단히 만들어보겠습니다.

  1. 탐색기 오른쪽 상단의 Get Token 버튼을 클릭합니다.
  2. Get User Access Token 옵션을 선택합니다.
  3. 다음 대화 상자에서 어느 확인란도 선택하지 않고 파란색 Get Access Token 버튼만 클릭합니다.
  4. Facebook 로그인 대화 상자가 표시됩니다. OK 아이콘을 클릭하여 계속합니다.

첫 번째 요청 만들기

이제 첫 번째 그래프 API 요청을 만들 준비가 되었습니다. '읽기' 요청부터 시작하겠습니다. "GET" 드롭다운 버튼 옆의 텍스트 필드(경로 필드라고 함)에서 기존 텍스트를 삭제하고 'me'를 입력합니다.

이제 "제출" 버튼을 누릅니다. 처리하는 데 몇 초가 걸리지만 응답 패널에 많은 정보가 표시됩니다. 여기 표시되는 내용은 프로필의 공개 범위 설정에 따라 결정되지만 기본 필드가 최소 몇 개 있어야 합니다.

지금 그래프 API 탐색기에서 실행한 작업은 다음의 그래프 API '읽기' 요청과 동일합니다.

GET graph.facebook.com
  /me

/me는 액세스 토큰이 요청에 사용되는 사람의 사용자 ID로 변환되는 특별한 엔드포인트입니다.

축하합니다. 첫 번째 그래프 API 요청을 만들었습니다!

게시 권한 얻기

다음에는 그래프 API를 사용하여 Facebook에 무언가 게시해보겠습니다. 이 작업은 앱에서 자체 맞춤 작성 도구를 만들고 , iOS 또는 Android에서 공유 대화 상자를 사용하지 않는 경우에만 실행합니다. Facebook 공유 대화 상자를 사용할 경우에는 Facebook 로그인을 구현하거나 공유를 위한 자체 인터페이스를 만들 필요가 없습니다.

그래프 API를 사용하여 게시를 탐색하려면 "액세스 토큰 받기" 버튼을 다시 클릭하고, 이번에는 publish_actions 권한을 선택합니다.

이제 파란색 "액세스 토큰 받기" 버튼을 클릭합니다. 로그인 대화 상자가 다시 표시됩니다. 여기서 그래프 API 탐색기가 개발자를 대신하여 게시할 수 있는 권한이 요청됩니다. 원할 경우 여기서 타겟을 '나만 보기'로 변경하여 나만 게시물을 볼 수 있지만, 이 대화 상자를 수락하고 다음 단계로 이동해야 합니다.

게시물 게시하기

publish_actions 권한을 요청한 경우 "GET" 버튼을 클릭하고 드롭다운 선택 도구가 표시되면 "POST"를 선택합니다. 경로 필드에 me/feed를 입력한 다음 "필드 추가"를 클릭합니다.

새 필드가 표시되면 message를 "이름"으로, Hello, World를 "값"으로 입력합니다. 다음과 같이 표시되어야 합니다.

이제 파란색 "제출" 버튼을 클릭하면, 몇 초 후 다음과 같은 모습의 응답 패널이 표시됩니다.

{
  "id": "{new-post-id}"
}

이제 첫 번째 게시물이 그래프 API를 통해 게시되었습니다. 프로필로 이동하면 게시물을 볼 수 있습니다.

지금 그래프 API 탐색기에서 실행한 작업은 다음 그래프 API '게시' 요청과 동일합니다.

POST graph.facebook.com
  /me/feed?
    message="Hello, World."&
    access_token={your-access-token}

다음 단계

지금까지 기본 사항에 대해 알아보았으므로 이제 그래프 API를 사용하는 방법에 대해 자세히 알아보세요. Facebook 로그인에 대해 아직 읽어보지 않았으면 읽어보고 특히 복잡한 그래프 API 요청을 만드는 데 필요한 액세스 토큰을 생성하는 방법에 대해 알아보세요.