2013-05-28 2 views
4

그래서이 주제를 많이 조사 했으므로 복잡한 일이 아니지만 그것에 대한 명확성을 좋아할 것입니다. 여기에 문제가 있습니다.iOS 앱과 웹 앱에 Facebook 그래프 연결하기

FB 그래프 (FB 로그인, 친구 초대, FB를 통한 공유 등)를 사용하는 웹 앱이 있습니다. 방금 웹 사이트 용 iOS 앱을 제작했으며 이제 iOS 앱에서도 위의 모든 FB 작업을 구현하려고합니다. 나는 페이스 북의 문서를 훑어 보았고 페이스 북의 로그인 정보를 이미 우리 웹 사이트에 등록되어있는 사용자 (그리고 페이스 북 계정도 연결되어있는 사용자)에게만 사용되도록 시도했지만 작동하지 않는 것 같습니다.

사용 사례 - 사용자가 웹 앱에 등록하고 FB 계정을 Google에 연결합니다. 그런 다음 iOS 앱을 다운로드하고 FB 로그인을 사용하여 iOS 앱에 로그인하거나 타임 라인에서 개체를 공유하려고합니다. 반대의 경우도 적용해야합니다.

질문 - 위의 사용 사례에 대해 iOS App, Web Server 및 Facebook 사이의 워크 플로우는 어떻게되어야합니까? 기본적으로 토큰과 비밀은 어떻게 전달되어 3 명 모두가 동일한 사용자와 동일한 FB 계정에 대해 말하고 있다는 것을 알고 있습니까?

링크 나 조언을 보내 주시면 감사하겠습니다. 감사!

+0

ios 앱과 Facebook을 통합하는 것에 대해 더 궁금한 점이 있습니까? –

답변

5

페이스 북의 공식 웹 사용자가 처음으로 기본 응용 프로그램을 시작하는 경우 사용자가 누구인지 알 수 없습니다. 따라서 "facebook으로 로그인"버튼을 누르라는 메시지가 필요합니다. 그들이 버튼을 누르면 facebook-ios-sdk는 로그인 한 사용자를 파악한 다음 해당 사용자가 이미 애플리케이션 액세스 권한을 부여했는지 확인합니다. 웹 앱과 네이티브 앱이 모두 동일한 페이스 북 앱을 가리키면 facebook-ios-sdk는 단순히 액세스 된 토큰을 저장하고 네이티브 앱에서 웹 앱이하는 모든 것에 액세스 할 수 있습니다.

여기에서 핵심은 웹 앱과 기본 앱이 동일한 facebook 앱 (즉, developers.facebook.com의 동일한 앱 ID)을 가리켜 야한다는 것입니다. 그렇지 않은 경우 네이티브 앱 사용자는 'facebook으로 로그인'버튼을 클릭 할 때 권한을 부여하라는 메시지가 다시 표시됩니다. 또한 사용자가 웹 앱의 동일한 페이스 북 계정 (브라우저의 쿠키를 기반으로 함)과 전화 자체에 로그인해야합니다. facebook-ios-sdk는 몇 가지 다른 방법을 사용하여 휴대 전화에서 활성 Facebook 계정을 찾습니다. iOS 5 이상의 시스템 페이스 북 계정, 페이스 북 고유의 앱 간 앱 간 호출, 앱에서 실행중인 웹보기 인스턴스 용 브라우저 쿠키 또는 사파리로 반송하고 사파리에서 브라우저 쿠키를 사용합니다. 어느 것이 능동태 facebook 계정이 웹 앱에 것과 동일한 facebook 계정을 찾아 낼 필요가 있었다는 것을 말하는 첫번째 어느 것이 돌아온다. 대부분의 경우 대부분의 사용자는 하나의 페이 스북 계정 만 갖고 동일한 계정으로 도처에 로그인되어 있기 때문에 일치 할 수 있지만 확실히 다를 수 있습니다. 웹 앱 페이스 북 사용자가 facebook-ios-sdk에 의해 감지 된 네이티브 앱 활성 페이스 북 사용자와 같지 않을 때, "페이스 북으로 로그인"버튼은 네이티브 앱 액티브 페이스 북 사용자가 로그인하도록 프롬프트 할 것입니다 권한 부여.

네이티브 앱에 액세스 토큰이 부여되면 서버로 다시 보내고 연결된 페이스 북 사용자 ID를 찾을 수 있습니다. 이제 웹 앱 사용자와 네이티브 앱 사용자가 동일하게 링크 될 수 있습니다 두 앱을 운영하는 사람. 또한 네이티브 앱에서 방금 얻은 최신 액세스 토큰을 사용하여 사용자 대신 서버에서 작성하려는 모든 그래프 API 호출을 만들 수 있습니다. facebook-ios-sdk를 통해 네이티브 앱에서 직접 만든 모든 공유/게시/API 호출은이 사용자로 완료되며 SDK에 의해 처리됩니다 (즉, 걱정할 필요가 없습니다. 웹 앱의 그래프 API처럼 모든 게시물을 타임 라인에 완벽하게 통합 할 수 있습니다.

웹 앱으로 이동하는 페이스 북의 공식 네이티브 앱 사용자가있는 경우 (이 사용자는 첫 번째 요청에서) 해당 사용자를 알 수 없습니다. facebook 사용자가 페이스 북 js sdk 로그인으로 표시 할 수 있으며 다시 한 번 동일한 페이스 북 사용자가 로그인하면이 현재 웹 응용 프로그램 사용자를 네이티브 응용 프로그램에 있던 사용자로 연결할 수 있습니다.

특히 귀하의 질문에 답변을하면 실제로 웹 응용 프로그램 또는 네이티브 응용 프로그램에 처음으로 방문 할 때 마이그레이션 사용자가 누구인지 알 수있는 방법이 없습니다. 그것은 "페이스 북으로 로그인"이 들어오는 곳입니다. 사용자가 브라우저와 페이스 북 (ios-sdk에 의해 결정됨)의 동일한 계정에 로그인되었다고 가정하면 앱에 로그인하는 프로세스는 다음과 같습니다. 원활한. 웹 응용 프로그램과 기본 응용 프로그램간에 사용 권한 집합이 다른 경우를 제외하고는 두 번째 사용 권한을 부여하라는 메시지가 표시되지 않으며 즉시 사용자의 액세스 토큰이 제공됩니다. 서버의 역할은 부여 된 액세스 토큰을 사용하여 두 사용자를 조정하는 것입니다. 액세스 토큰을 사용하면 서버가 그래프 API에 간단한 호출을하고 사용자의 페이스 북 사용자 ID를 얻을 수 있습니다. 페이스 북 사용자 ID를 사용하면 앱의 사용자의 "실제"ID를 일치시킬 수 있습니다. 즉, 이제 웹 앱 사용자와 기본 앱 사용자가 동일하다는 것을 알 수 있습니다. 사용자가 누구인지 알게되면 자신이 웹 앱을 사용하는지 또는 기본 앱을 사용하는지에 관계없이 해당 사용자에게 자신의 신원을 기반으로 개인화 된 환경을 제공 할 수 있습니다.

희망이 도움이됩니다. 당신이 가질 수있는 더 많은 질문에 행복하게 대답하십시오.

+1

그것은 길고, 사려 깊고, 잘 쓰여진 대답입니다. 좋은 작업! – ekinnear

+0

놀라운 답변을 보내 주신 Mr. T! 죄송합니다. 죄송합니다. 죄송합니다. 1 톤의 업무에 휘말 렸습니다. 다시 한 번 감사드립니다! – Amit

관련 문제