Facebook-OAuth-login für iframe canvas-apps zeigt ein logo-Bild und ein Gehen Facebook.com Beschriftung anstelle der Protokollierung in

Ich versuche mein (iframe) Facebook-Anwendung für die Verwendung von OAuth für die Authentifizierung.
Ich benutzte die python-sdk von Facebook, aber ich bin nicht wirklich zufrieden mit dem Ergebnis, noch.

Das problem ist, dass wenn ich umleiten Benutzer, die nie zugegriffen mein Antrag auf die login-Seite meiner iframe-diplays eine hässliche Zwischenseite, wie die folgende:

Facebook-OAuth-login für iframe canvas-apps zeigt ein logo-Bild und ein Gehen Facebook.com Beschriftung anstelle der Protokollierung in

Wenn der Benutzer klickt auf "Gehe zu Facebook.com" link, Sie werden dann weitergeleitet auf die standard - ("Request for Permission" - Seite.

Facebook-OAuth-login für iframe canvas-apps zeigt ein logo-Bild und ein Gehen Facebook.com Beschriftung anstelle der Protokollierung in

Gibt es eine Möglichkeit, um der ersten Seite und führen den user direkt auf die zweite?

Tritt dieses problem auf den ersten Zugang für die Benutzer, die noch nicht gewährt keine Berechtigung auf meine Bewerbung noch nicht.

Den login-code ist auf der Grundlage der OAuth-Beispiel im Python-SDK:

class LoginHandler(BaseHandler):
    def get(self):
        verification_code = self.request.get("code")
        args = dict(client_id=FACEBOOK_APP_ID, redirect_uri=self.request.path_url)
        if self.request.get("code"):
            args["client_secret"] = FACEBOOK_APP_SECRET
            args["code"] = self.request.get("code")
            raw_response = urllib.urlopen(
                "https://graph.facebook.com/oauth/access_token?" +
                urllib.urlencode(args)).read()
            logging.debug("access_token raw response " + raw_response)
            response = cgi.parse_qs(raw_response)
            access_token = response["access_token"][-1]

            # Download the user profile and cache a local instance of the
            # basic profile info
            graph = facebook.GraphAPI(access_token)
            profile = graph.get_object("me")

            user = User.get_by_key_name(profile["id"])
            if not user:
                user = User(key_name=str(profile["id"]),
                                id=str(profile["id"]),
                                name=profile["name"],
                                firstname=profile["first_name"],
                                profile_url=profile["link"],
                                access_token=access_token)
                user.put()
            elif user.access_token != access_token:
                # we already know this user, but we need to update
                user.access_token = access_token
                user.put()

            set_cookie(self.response, "fb_user", str(profile["id"]),
                       expires=time.time() + 30 * 86400)

            self.response.headers["P3P"] = 'CP="IDC CURa ADMa OUR IND PHY ONL COM STA"'
            self.redirect("/")
        else:
            self.redirect(
                "https://graph.facebook.com/oauth/authorize?" +
                urllib.urlencode(args))

InformationsquelleAutor der Frage abahgat | 2010-11-13

Schreibe einen Kommentar