2012-05-04 2 views
1

페이스 북에 로그인해야하는 iPhone 응용 프로그램에서 작업하고 있습니다. 그러나 그저 사용자 friendslist를 검색하는 것입니다, 그 후에 나는 자신의 XMPP 서버를 통해 통신을 계속하고 싶습니다.이 서버에 대한 계정 생성을 자동화하고 싶습니다.로그인 한 페이스 북 계정을 기반으로 자동 암호 생성

나는 페이스 북 사용자 아이디이지만, 사용자가 페이스 북에 로그인 한 것을 보여주는 일종의 개인 키를 기반으로 암호를 만들어야 할 필요가있는 사용자 이름이 필요합니다. 이 키는 일정 시간 동안 로그인 한 모든 기기에서 동일해야합니다. 페이스 북 API를 살펴 보았지만 사용자가 다른 기기에서 로그인 할 때 다른 액세스 토큰 만 찾을 수있었습니다.

내 질문 : 페이스 북 API에서 사용할 수있는 것이 있습니까? 대안 솔루션에 대한 제안도 환영받을 것입니다.

감사합니다.

편집 :

예 :

  1. 사용자가 자신의 아이폰에 처음으로 응용 프로그램을 사용, 페이스 북으로 기록하고 응용 프로그램이 자동으로 내 XMPP 서버, 사용자 ID 상에 ACOUNT를 생성 페이스 북 ID와 같으며 비밀번호는 사용자가 페이스 북 계정에 로그인했음을 나타내는 것입니다.
  2. 이제 사용자가 자신의 iPad에서이 앱을 사용하여 페이스 북 계정에 다시 로그인하지만 이미 내 XMPP 서버에 계정이 있으면 페이스 북에서받은 데이터에서 동일한 비밀번호가 생성되어야합니다.

2 단계는 나를 위해 문제가되는 부분입니다. 사용자가 자신의 계정에 로그인했음을 나타내는 데이터가 필요하며, 로그인 할 때마다 언제든지 동일한 데이터가 필요합니다. 암호는 매번 생성 될 수 있습니다. 예를 들어 사용자가 60 일 동안 로그인하지 않고 앱을 다시 사용하기 시작하거나 다른 기기에 로그인 한 경우에도 access_token을 사용하면 변경 될 것입니다.

페이스 북에서 제공하는 XMPP 서버는 내 필요가 아니라 채팅 메시지 외에 다른 것들을 보낼 수 있어야하며 로그온 할 수있는 새 장치를 동기화 할 수 있도록 메시지를 저장할 수 있어야합니다. 적절한 상태로

답변

0

Facebook XMPP의 경우 X-FACEBOOK-PLATFORM이라는 맞춤 SASL 메커니즘을 사용하는 것이 좋습니다. 기본적으로 사용자는 먼저 응용 프로그램에 로그인하고 xmpp_login 확장 권한을 부여해야합니다. xmpp_login 확장 권한을 가진 사용자에 대한 유효한 access_token을 얻으려면 클라이언트 측 플로우를 따르십시오.

다음 parmeters과 TLS 통해 base64로 인코딩 된 문자열을 보내

string method: Should be the same as the method specified by the server. 
string api_key: The application key associated with the calling application. 
string access_token: The access_token obtained in the above step. 
float call_id: The request's sequence number. 
string v: This must be set to 1.0 to use this version of the API. 
string format: Optional - Ignored. 
string cnonce: Optional - Client-selected nonce. Ignored. 
string nonce: Should be the same as the nonce specified by the server. 

귀하의 APPID (API_KEY)는 여러 문맥에서 사용 할 수 있으며 각각에 대한 사용자 액세스 토큰을 얻을 수 있습니다 사용자의 장치. https://developers.facebook.com/docs/chat/

+0

이되지 않는 메커니즘이 바로 페이스 북에 로그인하는 것을 : 여기

는 채팅 API의 문서인가? 내가 잘못 이해했을 수도 있지만이 방법으로 내 XMPP 서버에 대한 비밀번호를 만들 수 있습니까? (제 편집의 예를보세요). – loconero

+0

저는 여러분이 사용자의 access_token을 저장하고 사용자가 앱을 다시 사용할 때마다 사용자를 다시 인증 할 수 있다고 생각합니다.60 일이 넘은 경우 access_token을 업데이트합니다. oAuth 대화 상자는 사용자가 설정에서 앱을 인증 해제하지 않은 경우 사용자에게 프롬프트하지 않습니다. 따라서이 사용자에 대해 신선한 access_token을 얻을 수 있습니다. 서버와 새로운 데이터로 장치를 동기화해야하는 경우 사용자가 식별되면서 사용자가 Facebook에서 성공적으로 인증 한 경우 유효한 암호를 생성 할 수 있습니다. 도움이되기를 바랍니다. – Alexcode

+0

예.하지만 비밀번호를 생성하기 위해 페이스 북에서 입력으로 사용할 수있는 것이 있습니까? 사용자가 언제 또는 어디에 로그인하든 상관없이 동일한 것입니다. 사용자가 다른 장치에서 로그온하기로 결정하면 앱은 내 서버에 대한 사용자의 암호를 알아야합니다. 내 문제는 암호 생성과 관련이있다. 페이스 북에서 보낸 매개 변수는 Facebook의 평생 동안 동일하게 사용할 수 있는가? – loconero

관련 문제