소셜 네트워크 API: 현실 세계로 가는 인터넷 포털

게시 됨: 2022-03-11

Google이 2008년 5월에 YouTube API의 첫 번째 버전을 출시하고 Facebook이 2010년 4월에 Graph API의 첫 번째 버전을 출시한 이후로 소셜 네트워크 API는 많은 발전을 이루었습니다. 오늘날 이러한 API는 소셜 네트워크 플랫폼에 게시물을 쿼리할 수 있는 기회를 제공합니다. , 사용자, 채널 및 인구통계 데이터. 그들은 심지어 당신이 당신만의 서비스를 만들거나 당신의 사용자 기반에 대해 더 많이 알 수 있게 해줍니다.

이 기사에서는 인기 있는 소셜 네트워크 API를 활용하는 방법을 살펴보겠습니다.

  • 페이스북(그래프 및 마케팅 API)
  • 인스 타 그램
  • 트위터
  • 유튜브
  • 핀터레스트

또한 이러한 API의 제한 사항에 대해 논의하고 이러한 API와 함께 사용할 수 있는 몇 가지 유용한 도구를 탐색합니다. 이 기사의 뒷부분에서는 이러한 API를 모든 Rails 애플리케이션에 통합하는 방법도 살펴볼 것입니다.

소셜 네트워크 API: 현실 세계로 가는 인터넷 포털

소셜 네트워크 API를 사용하여 사용자가 자신보다 더 잘 알게 됩니다.
트위터

한 번에 하나의 소셜 네트워크 API에 초점을 맞추고 해당 기능, 제한 사항 및 사용 가능한 도구를 설명합니다. 이 문서의 뒷부분에서 더 나은 비교를 위해 다양한 API와 해당 속성이 있는 매트릭스가 있습니다.

API를 사용하려면 먼저 OAuth 기반 요청으로 애플리케이션을 대신하여 쿼리를 생성하는 앱을 설정해야 합니다. 사용자는 앱에 대해 인증하고 결과 사용자 액세스 토큰으로 데이터에 액세스할 수 있습니다.

페이스북

이제 구식 FQL(Facebook Query Language)은 Facebook의 모든 데이터에 액세스하는 데 사용할 수 있는 SQL과 유사한 쿼리 언어였습니다.

Facebook은 2010년 4월 Graph API의 첫 번째 버전을 출시했습니다. 이 기사를 작성하는 시점의 최신 버전은 2016년 4월 12일에 도입된 2.6입니다. 쿼리에 사용할 수 있는 낮은 수준의 HTTP 기반 API입니다. 데이터를 생성하고, 게시물을 생성하고, 자동화된 광고 캠페인을 생성할 수도 있습니다.

도구

그래프 API 탐색기는 Facebook API로 작업할 때 가장 일반적으로 사용되는 도구입니다. 이를 통해 브라우저에서 Graph API 쿼리를 실행하고 결과를 검사할 수 있습니다. 앱의 액세스 토큰 중 하나를 사용하거나 선택한 범위로 즉시 생성할 수 있습니다.

기능

그래프 API는 특정 노드에서 HTTP 요청에 따라 객체를 생성, 업데이트 및 삭제할 수 있는 REST 기반 API입니다.

액세스 토큰

Graph API에 대해 쿼리를 실행하려면 사용자가 앱에서 성공적으로 승인하는 즉시 획득하는 액세스 토큰이 필요합니다. 액세스 토큰은 애플리케이션에서 저장해야 합니다.

범위

범위는 사용자를 대신하여 수행할 수 있는 작업을 결정합니다. 애플리케이션은 사용자가 앱에서 권한을 부여할 때 특정 범위를 요청합니다. 예를 들어 publish_actions 범위를 사용하면 앱이 사용자를 대신하여 게시물을 게시할 수 있습니다. 이메일 범위는 앱이 사용자의 이메일을 읽을 수 있도록 합니다. 모든 범위에 대한 전체 개요는 공식 문서에 나열되어 있습니다.

publish_actions 또는 ads_management 와 같은 특정 범위는 앱 출시 전에 Facebook의 검토가 필요합니다.

Graph API가 작동하는 방식을 보여주기 위해 API를 사용하여 게시물을 읽고, 만들고, 업데이트하고, 삭제하는 방법을 보여 드리겠습니다.

자신의 게시물을 얻으려면 GET 쿼리 /me/posts 를 실행할 수 있습니다. 결과는 메시지, created_time 및 id를 포함한 게시물 목록이 포함된 JSON 문자열입니다. pretty 매개변수 또는 JSON 포맷터를 사용하여 응답이 덜 복잡해 보이도록 할 수 있습니다.

게시물에 대한 더 많은 데이터를 얻으려면 필드를 쿼리 매개변수로 사용하여 쿼리를 확장할 수 있습니다. 예를 들어, 검색어 me/posts?fields=reactions, picture 는 게시물의 사진과 반응을 제공합니다.

게시물을 작성하려면 message: hello world 와 같은 매개변수를 사용하여 에지 피드(예: me/feed )에 대해 POST 작업을 보내기만 하면 됩니다. Graph API는 생성된 게시물의 ID와 함께 JSON 객체를 반환합니다. 그러면 http://facebook.com/[post_id] 주소에서 게시물을 볼 수 있습니다.

게시물을 업데이트하려면 업데이트할 필드를 매개변수로 사용하여 게시물의 노드에 POST 요청을 보낼 수 있습니다. 예: /[post_id]Message: lorem ipsum 과 같은 매개변수. true 또는 false 값이 있는 성공 표시기가 반환됩니다.

게시물을 삭제하려면 게시물 ID(예: /[post_id] )로 노드에 DELETE 요청을 하면 됩니다. 반환 값은 성공 값이 true 또는 false인 JSON 개체입니다.

모든 노드 및 작업에 대한 전체 개요는 그래프 API 참조에서 확인할 수 있습니다.

마케팅 API

마케팅 API는 Facebook 광고를 관리하고 애플리케이션을 통해 광고 통찰력을 얻을 수 있는 강력한 도구이기 때문에 특별히 언급할 가치가 있습니다.

다른 Graph API 메서드와 동일한 방식으로 작동합니다. 그러나 사용자의 광고에 액세스하려면 ads_management 범위가 필요합니다. 또한 Facebook은 앱을 게시하기 전에 검토해야 합니다.

테스트

앱을 생성하면 개발 모드에 있으며 앱 대시보드에 자동으로 표시됩니다(예: https://developers.facebook.com/apps/ ).

개발 모드에서는 관리자, 개발자 및 테스터만 앱에 액세스할 수 있습니다. 앱 대시보드의 역할 섹션에서 테스터와 관리자를 추가할 수 있습니다.

검토 프로세스

특정 권한을 추가할 때 Facebook은 앱을 게시하기 전에 검토해야 합니다. 검토 프로세스는 이 지침 세트에 의해 정의됩니다.

검토를 위해 특정 항목을 제출하려면 앱 대시보드의 앱 검토 섹션에 추가하기만 하면 됩니다. 그러면 Facebook에서 검토 프로세스를 안내하고 앱이 승인되면 알림을 받게 됩니다.

제한 사항 및 해결 방법

속도 제한

앱은 사용자당 시간당 총 200개의 호출을 할 수 있습니다. 해당 제한에 도달하면 API 호출에 오류가 발생합니다.

Facebook에서 게시물 검색

Facebook은 그래프 API 및 FQL을 통해 Facebook에서 게시물 및 태그 검색을 제한합니다. 그러나 Google 검색 API를 사용하여 공개 Facebook 게시물을 검색한 다음 URL의 post-id를 사용하여 Graph API를 통해 특정 게시물에 대한 추가 정보를 검색할 수 있습니다.

맞춤 잠재고객 데이터 가져오기

Facebook의 Audience Insights 는 관심사, 인구 통계 또는 기타 속성(예: 이메일 주소 모음)을 기반으로 특정 잠재고객에 대해 자세히 알아볼 수 있는 강력한 조사 도구입니다.

그러나 광고 API를 통해 잠재고객 인사이트를 자동으로 생성하는 방법을 찾지 못했습니다. 이에 대한 창의적인 아이디어나 제안 사항이 있으면 댓글로 알려주십시오.

인스 타 그램

인스타그램 API 일러스트레이션

Instagram API는 2014년 4월에 처음 출시되었으며 사용자 게시물을 분석하고 사용자가 자신의 게시물을 관리하는 데 도움이 되는 앱을 빌드할 수 있습니다.

도구

이 기사 시점에서 Instagram의 API 콘솔은 더 이상 사용되지 않으므로 브라우저에서 테스트 목적으로 Apigee를 사용하는 것이 좋습니다.

기능

Instagram API는 REST 기반 API입니다. 모든 엔드포인트는 공식 문서에 설명되어 있습니다.

액세스 토큰

Instagram API에 대해 쿼리를 실행하려면 사용자가 앱에서 승인하는 즉시 획득하는 액세스 토큰이 필요합니다. 사용자가 액세스 토큰을 받으려면 앱의 인증 URL로 연결되어야 합니다. 그런 다음 서버는 앱을 승인한 후 사용자를 리디렉션하고 토큰을 읽을 수 있습니다.

범위

앱에서 다른 권한을 요청할 수 있습니다. 예를 들어, "기본"은 사용자의 프로필 정보 및 미디어 읽기로 제한합니다. "public_content"를 사용하면 사용자를 대신하여 모든 공개 프로필과 미디어를 읽을 수 있습니다.

Instagram API가 어떻게 작동하는지 보여주기 위해 미디어 엔드포인트 https://api.instagram.com/v1/media/popular 를 기반으로 몇 가지 예를 살펴보겠습니다.

이 끝점은 액세스 토큰을 매개 변수로 전달한 경우 Instagram에서 현재 인기 있는 미디어를 반환합니다. 결과는 각각에 대해 미디어 ID, 이미지 링크, 좋아요, 댓글, 게시한 사용자 및 기타 속성을 포함하는 게시물의 JSON 배열이 됩니다.

apigee를 사용하여 API 엔드포인트 및 해당 매개변수에 대해 알아보고 더 자세히 알아볼 수 있습니다.

테스트

Instagram 플랫폼에서 생성된 모든 새 앱은 샌드박스 모드에서 시작됩니다. 이것은 검토를 위해 앱을 제출하기 전에 공개적으로 사용 가능한 API 엔드포인트를 테스트할 수 있는 완전한 기능 환경입니다.

앱을 테스트하려면 스테이징 버전을 만들고 검토를 거친 라이브 버전 대신 해당 버전을 통해 모든 쿼리를 실행하기만 하면 됩니다.

검토 프로세스

샌드박스 모드의 앱은 모든 API 엔드포인트를 사용할 수 있지만 제한된 수의 사용자와 미디어로 제한됩니다. 앱 개발 및 테스트를 위한 훌륭한 메커니즘입니다.

라이브를 시작하고 모든 Instagram 콘텐츠에 액세스하려면 검토를 위해 신청서를 제출해야 합니다. 검토가 끝나면 앱이 승인된 사용자에 대한 범위만 요청할 수 있습니다.

제한 사항 및 해결 방법

인구통계학적 분석

이 글을 쓰는 시점에서는 인스타그램이 해당 정보를 제공하지 않기 때문에 공개 사용자의 나이, 성별 또는 관심사에 대한 정보를 얻을 수 있는 방법이 없습니다.

팔로어 또는 Instagram 사용자 목록에 대한 인구 통계 데이터를 얻으려면 모든 사람을 반복하고 팔로어 또는 약력에 제공된 정보를 기반으로 연령과 성별 또는 관심사를 결정해야 합니다.

이 문제에 대한 좋은 빅 데이터 솔루션은 일부 회사에 가치 있는 서비스가 될 수 있습니다.

속도 제한

Instagram 플랫폼의 모든 속도 제한은 슬라이딩 1시간 창에서 액세스 토큰으로 제어됩니다. 라이브 앱은 샌드박스 모드의 앱보다 속도 제한이 더 높습니다. 라이브 앱의 글로벌 속도 제한은 현재 시간당 5,000건입니다.

트위터

Twitter API는 2006년 9월에 처음 출시되었습니다. Twitter 데이터에 대한 읽기 및 쓰기 액세스를 제공하는 공용 REST API입니다. 인증은 OAuth를 사용하여 수행됩니다. 응답은 JSON 형식입니다.

도구

Twitter에는 브라우저에서 요청을 테스트하는 데 사용할 수 있는 apigee로 구동되는 API 콘솔 도구가 있습니다.

기능

REST API를 사용하면 사용자의 트윗, 팔로어 및 팔로우한 사람들을 얻을 수 있습니다. 다른 트윗에서 해시태그를 검색할 수도 있습니다.

액세스 토큰

Twitter를 사용하면 액세스 토큰의 대가로 사용자가 인증할 수 있는 앱을 만들 수 있습니다. 인증 모델은 OAuth입니다.

범위

앱의 설정 페이지에서 설정해야 하는 권한은 읽기 전용과 읽기 및 쓰기의 두 가지뿐입니다. 후자를 사용하면 사용자를 대신하여 트윗을 만들고 다른 게시 작업을 수행할 수 있습니다.

Twitter API 사용법을 보여주기 위해 승인된 사용자의 트윗을 검색합니다. 결과는 트윗의 이미지, 즐겨찾기, 리트윗, URL, 생성 날짜 및 기타 속성이 포함된 JSON 배열입니다. Apigee를 사용하여 API 엔드포인트 및 해당 매개변수에 대해 자세히 알아보세요.

테스트 및 검토 프로세스

현재 Twitter API에 사용할 수 있는 검토 프로세스 또는 테스트 모드가 없습니다.

제한 사항 및 해결 방법

인구통계학적 분석

현재 누군가의 트위터 팔로워로부터 인구 통계 데이터를 얻는 쉬운 방법은 없습니다. 무차별 대입 접근 방식은 각 팔로워를 탐색하고 프로필 및 연결된 소셜 네트워크 계정을 통해 데이터를 가져오려고 시도하는 것입니다.

그런 다음 데이터 분석을 통해 수집된 팔로어 데이터를 기반으로 추가 가정을 할 수 있습니다. 더 많은 통찰력을 얻는 또 다른 방법은 Twitter의 유료 엔터프라이즈 API 플랫폼 GNIP를 사용하는 것입니다. 무엇보다도 API를 통해 대상을 만들고 대상에 대한 정보를 얻을 수 있습니다. API는 현재 베타 버전입니다.

속도 제한

Twitter에는 사용자당 15분 단위로 속도 제한이 있습니다. 애플리케이션에 토큰이 여러 개 있는 경우 제한에 도달하지 않도록 공개 작업에 대해 토큰을 간단히 대체할 수 있습니다.

유튜브

YouTube API 일러스트레이션

YouTube 데이터 API는 2013년 1월에 처음 도입되었습니다. 이 API를 사용하면 애플리케이션에 YouTube 기능을 추가하고, 콘텐츠를 검색하고, YouTube 채널의 인구통계를 분석할 수 있습니다. JSON 응답을 반환하는 OAuth, 토큰 기반 REST API입니다.

도구

API Explorer를 사용하면 승인되지 않은 요청을 테스트할 수 있습니다. 제공된 엔드포인트에 대해 브라우저에서 요청을 실행할 수 있습니다.

기능

무엇보다도 활동, 채팅, 라이브 방송, 재생 목록, 채널, 비디오 및 구독으로 작업할 수 있습니다. 대부분의 엔드포인트는 YouTube 계정으로 인증해야 합니다.

액세스 토큰

YouTube Data API는 비공개 사용자 데이터에 대한 액세스 권한을 부여하기 위해 OAuth 2.0 프로토콜을 지원합니다. 사용자가 애플리케이션에서 승인되면 액세스 토큰을 저장해야 하는 애플리케이션으로 리디렉션됩니다.

OAuth 2.0 인증을 사용하려면 먼저 Google 개발자 콘솔에서 인증 자격 증명을 얻어야 합니다.

범위

YouTube Data API는 현재 다음 범위를 지원합니다.

  • 강제 SSL - SSL 연결을 통해서만 YouTube 계정을 관리합니다.
  • 기본값 - YouTube 계정을 관리합니다. 이 범위는 youtube.force-ssl 범위와 기능적으로 동일하지만 SSL 연결이 필요하지 않습니다.
  • 읽기 전용 - YouTube 계정을 봅니다.
  • 업로드 - YouTube 동영상을 업로드하고 YouTube 동영상을 관리합니다.
  • 파트너 채널 감사 - 다중 채널 네트워크가 네트워크에서 채널을 수락하거나 거부하는 기준으로 사용하는 정보를 검색합니다.

Youtube Data API 사용의 예로서 다음 요청은 제목과 설명에 "코딩"이 포함된 동영상을 쿼리합니다.

 https://www.googleapis.com/youtube/v3/search?part=snippet&q=coding&key={YOUR_API_KEY}

결과는 제목, 설명, videoId 및 channelId를 포함하는 JSON 객체입니다. 후자를 사용하여 채널에 대해 자세히 알아볼 수 있습니다.

특정 리소스를 반환하는 모든 API 요청에는 part 매개변수가 필요합니다. 매개변수는 API 응답에 포함되어야 하는 리소스 속성을 식별합니다. 예를 들어 비디오 리소스에는 snippet, contentDetails, fileDetails, 플레이어, processingDetails, recordingDetails, 통계, 상태, 제안, topicDetails 부분이 있습니다.

API 키를 제외한 다른 모든 매개변수는 호출마다 다릅니다. API 참조 가이드에서 이에 대해 자세히 알아보세요.

핀터레스트

Pinterest API는 2015년 4월에 처음 출시되었습니다. 보드, 핀, 팔로워 등과 같은 사용자의 Pinterest 데이터에 대한 액세스를 제공하는 RESTful API입니다. Pinterest API는 OAuth를 사용하며 사용자 콘텐츠와 상호 작용할 때 읽기 및 쓰기 권한을 모두 허용합니다.

도구

다른 사람들과 마찬가지로 Pinterest는 끝점을 테스트하고 쿼리를 실행할 수 있는 API 탐색기를 제공합니다. 여기에서 모든 도구를 볼 수 있습니다.

기능

Pinterest REST API를 사용하면 OAuth로 핀, 보드를 만들고 Pinterest 데이터를 쿼리할 수 있습니다.

액세스 토큰

Pinterest는 OAuth 2.0을 사용하여 앱과 사용자 간의 요청을 인증합니다. 모든 요청은 HTTPS를 통해 이루어져야 합니다.

범위

범위는 앱이 사용자를 대신하여 수행할 수 있는 작업을 결정합니다. Pinterest는 다음 범위를 사용합니다.

  • none (식별자를 알아야 함): 사용자 프로필, 게시판 및 핀 세부정보, 게시판의 핀에서 GET 메서드를 사용합니다.
  • read_public : 사용자의 핀, 보드 및 좋아요에 GET 메서드를 사용합니다.
  • write_public : 사용자의 핀과 보드에서 PATCH, POST, DELETE 메소드를 사용합니다.
  • read_relationships : 사용자의 팔로어 및 팔로어(게시판, 사용자 및 관심사)에 대해 GET 방법을 사용합니다.
  • write_relationships : 사용자의 팔로어와 팔로워(게시판, 사용자 및 관심사)에 대해 PATCH, POST 및 DELETE 메서드를 사용합니다.

Pinterest API 사용을 시연하기 위해 사용자의 최신 핀을 읽는 방법을 시연하겠습니다.

https://api.pinterest.com/v1/me/pins/?access_token={your_token}&fields=id,link,note,url,counts,board,created_at 는 id, link, note, url, 좋아요 및 repins.

테스트 및 검토 프로세스

앱은 초기에 개발 모드에 있으며 프로덕션 모드로 출시되기 전에 검토를 위해 제출해야 합니다.

제한 사항 및 해결 방법

인구통계학적 분석

게시판에서 인구 통계 데이터를 가져오는 일반적인 방법은 없습니다. 그러나 보드의 약력과 다른 소셜 네트워크 계정에 대한 링크에서 보드의 추종자 및 정보를 얻으려고 시도할 수 있습니다. 사용자의 공통 연결을 통한 빅 데이터 솔루션도 가능합니다.

핀 검색

현재 API를 통해 특정 태그나 키워드로 핀을 검색할 수 있는 방법은 없습니다. Google Custom Search API를 사용하여 Pinterest 핀에서만 결과를 검색하고 URL을 통해 핀 ID를 수집하여 이러한 제한을 우회할 수 있습니다. 그런 다음 ID를 사용하여 API를 통해 핀에 대한 정보를 얻을 수 있습니다.

속도 제한

고유한 앱 ID가 있는 각 앱은 각 고유한 사용자 토큰에 대해 시간당 엔드포인트당 1,000회의 호출이 허용됩니다.

모든 API 응답은 속도 제한에 대한 업데이트를 제공하는 헤더를 반환합니다. X-Ratelimit-Limit은 해당 특정 요청에 대한 속도 제한이고 X-Ratelimit-Remaining은 60분 창에 남은 요청 수입니다.

지정된 엔드포인트에 대한 속도 제한을 초과하면 429 "요청이 너무 많습니다" 오류 코드가 표시됩니다.

소셜 네트워크 API 비교

버전 OAuth 체재 인구통계
페이스북 v2.6
최초 출시: 2010년 4월
OAuth 2 JSON 응답이 있는 REST 요청 지원
인스 타 그램 v1
최초 출시: 2014년 4월
OAuth 2 JSON 응답이 있는 REST 요청 지원되지 않음
트위터 v1.1
최초 출시: 2006년 9월
OAuth 1 JSON 응답이 있는 REST 요청 GNIP에서만 지원됨
유튜브 v3
최초 출시: 2013년 1월
OAuth 2 JSON 응답이 있는 REST 요청 지원
핀터레스트 v1
최초 출시: 2015년 4월
OAuth 2 JSON 응답이 있는 REST 요청 지원되지 않음

Devise를 사용한 데모 애플리케이션

수많은 소셜 네트워크 API 패키지 및 라이브러리 덕분에 이러한 API를 신규 또는 기존 애플리케이션에 통합하는 것이 그 어느 때보다 쉬워졌습니다. 대부분의 최신 플랫폼과 프레임워크에는 인증 측면에서 이러한 모든 API를 깔끔한 플러그인 아키텍처를 갖춘 단일 라이브러리로 통합하는 오랜 시간 테스트를 거친 타사 라이브러리가 있습니다.

소셜 네트워크 API 그림

이 기사에서는 Ruby gem인 Devise가 Rails 애플리케이션에 대해 이 작업을 매우 우아하게 수행하는 방법을 살펴보겠습니다. Devise는 여러 로그인 공급자를 위한 인증, 등록, 로그인 및 데이터 저장을 구현하는 Warden을 기반으로 하는 유연한 인증 라이브러리입니다. 프론트 엔드에 더 가깝고 AngularJS에 대해 비슷한 것을 확인하려면 이 기사를 살펴보세요.

이 클래스의 대부분의 라이브러리와 마찬가지로 Devise는 위에서 언급한 소셜 네트워크 API를 지원하는 내장형으로 제공되지 않습니다. 이러한 소셜 네트워크 API 각각에 대한 지원은 추가 gem을 통해 제공됩니다. 이 기사에서 논의된 5개 공급자를 포함하는 Rails 인증에 다음 gem을 사용할 수 있습니다.

 gem 'omniauth-facebook' gem 'omniauth-pinterest' gem 'omniauth-twitter' gem 'omniauth-google-oauth2' gem 'omniauth-instagram'
Rails의 가장 좋은 점 중 하나는 오픈 소스 커뮤니티에서 작성한 많은 플러그인이 있다는 것입니다. 이들은 보석으로 배포됩니다. 중앙 구성 파일 아래에 나열된 이러한 gem은 Bundler에서 관리합니다.

이들은 각 제공자에 대한 인증, 등록, 로그인 및 저장만 제공하므로 실제 API 클라이언트에 대해 다음 gem도 가져와야 합니다.

 gem 'twitter' # https://github.com/sferik/twitter gem 'instagram' # https://github.com/facebookarchive/instagram-ruby-gem gem 'koala' # (Facebook API) https://github.com/arsduo/koala gem 'google-api-client' # (YouTube API), https://github.com/google/google-api-ruby-client gem 'pinterest-api' # https://github.com/realadeel/pinterest-api

옴니아 및 인증

사용자가 제공업체를 통해 앱을 승인할 수 있도록 하려면 다음 경로가 포함된 링크를 제공하면 됩니다.

 omniauth_authorize_path('user', :facebook) omniauth_authorize_path('user', :instagram) ...

사용자를 인증한 후 콜백에 반응하기 위해 다음과 같은 기능으로 범위를 사용하여 OmniauthCallbacksController를 정의할 수 있습니다.

 class AuthenticationsController < Devise::OmniauthCallbacksController def facebook if request.env["omniauth.auth"] ... end end end

토큰과 데이터가 있는 새 인증 모델을 애플리케이션에 추가하는 곳입니다.

 authentication = where(provider: omniauth.provider, user_id: user.id) .first_or_create do |auth| auth.user = user auth.uid = omniauth.uid auth.secret = omniauth.credentials.secret auth.token = omniauth.credentials.token ... end

API 호출하기

다음은 Koala를 사용하여 Facebook API를 쿼리하는 방법의 예입니다. 나머지 공급자는 거의 비슷하게 작동하며 gem의 README에 문서화되어 있습니다.

Koala를 사용하여 사용자 데이터를 얻는 방법은 다음과 같습니다.

 authentication = user.authentication_for_provider(:facebook) token = authentication.token api = Koala::Facebook::API.new(token) results = api.get_object("me")

그런 다음 API에서 반환된 JSON 결과를 사용할 수 있습니다. 이 데모 애플리케이션의 소스 코드는 GitHub에서 사용할 수 있습니다.

마무리

소셜 네트워크 API는 소셜 네트워크의 대규모 데이터 세트를 쿼리하고 애플리케이션을 위한 빅 데이터를 수집하는 강력한 도구를 제공합니다. 이러한 API를 기반으로 서비스를 구축하거나 이를 사용하여 고유한 애플리케이션 및 사용자 통찰력을 향상할 수 있습니다.

Rails와 사용 가능한 gem을 사용하면 이러한 API를 레일 앱에 쉽게 통합하고 앱과 API 간의 추상화 계층을 사용하여 인터페이스를 쿼리할 수 있습니다.