1

Google 애플 리케이션 엔진에 Facebook 앱을 호스팅하고 있는데 사용자가 무엇보다도 먼저 페이스 북에 로그인되어 있는지 확인해야합니다.사용자를 Facebook 앱의 로그인 페이지로 리디렉션하는 방법

내가 현재 할 수있는 일은 fbxml을 사용하여 facebook의 로그인 버튼을 표시하는 것입니다.하지만 로그인하지 않은 경우 페이스 북의 로그인 페이지로 리디렉션 된 다음 내 앱의 메인 페이지로 돌아가는 것이 좋습니다. 무엇이든하기 전에 사용자가 로그인했는지 확인할 수 있습니다. 내가 페이스 북의 애플 리케이션에 새로운 오전

, 나는 내가 그를 인증하기 위해

https://www.facebook.com/dialog/oauth?client_id=YOUR_APP_ID&redirect_uri=YOUR_URL 

로 사용자를 리디렉션 할 수 here 읽어 보시기 바랍니다. 하지만 GAE의 self.redirect(url)을 사용하면 페이지가 그대로 유지됩니다.

if u'signed_request' in self.request.POST: 
     facebook.load_signed_request(self.request.get('signed_request')) 
     if not facebook.user_id: 
      self.redirect("https://www.facebook.com/dialog/oauth?"+ 
          "client_id={0}&redirect_uri={1}" 
          .format(FACEBOOK_APP_ID, EXTERNAL_HREF)) 
      return 

그러나 내가 이전에 말했던 것처럼 이것이 작동하지 않기를 바랬습니다.

+0

리디렉션이 작동하지 않거나 Facebook URL에 문제가 있습니까? –

+0

self.redirect 메서드가 실제로 호출되었는지 확인 했습니까? – proppy

+0

리디렉션이 작동하지 않습니다. 그렇습니다. 리디렉션이 호출 될 때 –

답변

3

나는 '페이스 북의 응용 프로그램'으로 당신이 캔버스 응용 프로그램을 의미한다고 가정하고 있습니다. 그래서 사용자의 관점에서 https://apps.facebook.com/YOUR_NAMESPACE에 살 것입니까?

그렇다면 앱이 iframe에로드 될 때 window.top을 사용하여 Javascript를 통해 리디렉션을 추가해야합니다. https://developers.facebook.com/docs/appsonfacebook/tutorial/을보고 'top'을 검색 한 다음 예제를 페이지 끝으로 봅니다.

+0

예, 정확하게 말하자면 다음을 추가하려고했습니다 : '' 하지만 다음 페이지를 열면 오류가 발생합니다. '[APP_NAME]에 오류가 발생했습니다. 나중에 다시 시도하십시오. ' –

+0

Facebook 창에 오류가 표시됩니까? 그렇다면 앱 설정에서 도메인을 올바르게 설정 했습니까? – mrtom

+0

또한이 문제가 의심 스럽지만 URL 리디렉션 URL을 인코딩해야합니다 – mrtom

0

또한 페이스 북에서 제공하는 PHP Sdk의 좋은 예가 있습니다. 나는 with_js_sdk.php 예제를 좋아한다. 그것은 원활하게 실행되며 따를 수 있습니다. https://github.com/facebook/php-sdk http://developers.facebook.com/docs/reference/php/

관련 문제