2017-08-20 1 views
0

Wenn ich urllib, urllib2 oder Anfragen auf Python 2.7 verwende, landet keiner unter der gleichen URL wie beim Kopieren und Einfügen der Start-URL in Chrome oder FireFox für Mac.Warum leiten meine Browser mich mit dieser URL um, aber Python nicht?

EDIT: Ich vermute, das ist, weil man in vk.com umgeleitet werden muss, um umgeleitet zu werden. Wenn dies der Fall ist, wie füge ich die Anmeldung meinem Skript hinzu? Vielen Dank!

Start URL: https://oauth.vk.com/authorize?client_id=PRIVATE&redirect_uri=https://oauth.vk.com/blank.html&scope=friends&response_type=token&v=5.68

Actual final (weitergeleitet) URL: https://oauth.vk.com/blank.html#access_token=PRIVATE_TOKEN&expires_in=86400&user_id=PRIVATE

PRIVATE, PRIVATE_TOKEN = zensierten Informationen

Das folgende ist eine von mehreren Versuchen auf diese:

import requests 

APPID = 'PRIVATE' 
DISPLAY_OPTION = 'popup' # or 'window' or 'mobile' or 'popup' 
REDIRECT_URL = 'https://oauth.vk.com/blank.html' 
SCOPE = 'friends' # https://vk.com/dev/permissions 
RESPONSE_TYPE = 'token' # Documentation is vague on this. I don't know what 
     # other options there are, but given the context, i.e. that we want an 
     # "access token", I suppose this is the correct input 

URL = 'https://oauth.vk.com/authorize?client_id=' + APPID + \ 
     '&display='+ DISPLAY_OPTION + \ 
     '&redirect_uri=' + REDIRECT_URL + \ 
     '&scope=' + SCOPE + \ 
     '&response_type=' + RESPONSE_TYPE + \ 
     '&v=5.68' 

# with requests 

REQUEST = requests.get(URL) 

RESPONSE_URL = REQUEST.url 

Ich hoffe, Sie bemerken, was auch immer falsch an meinem Code ist.

Zusätzliche Information: Ich brauche die Umleitung, weil der Wert PRIVATE_TOKEN für die weitere Programmierung notwendig ist.

Ich habe versucht, etwas zu debuggen, aber weder der Interpreter noch IPython drucken die Debugging-Informationen aus.

Danke!

+0

wir nicht die Antwort des Servers sehen von 'https://oauth.vk.com/authorize? client_id = PRIVATE & redirect_uri = https: // oauth.vk.com/leer.html & scope = friends & response_type = token & v = 5.68', wenn Sie kein privates Token bereitstellen. Es benötigt eine Client-ID – mehulmpt

+0

@mehulmpt Versuchen Sie 3882511, es ist die ID für eine öffentliche App. –

Antwort

0

Das Problem ist das Ergebnis der nicht in der Python-Umgebung angemeldet ist.

. Lösung:

Verwenden Köper Browser in Python zu erstellen und melden Sie sich an

Code:

from twill.commands import * 

BROWSER = get_browser() 

BROWSER.go(URL) # URL is the URL concatenated in the question 

RESPONSE_URL = BROWSER.get_url() 
Verwandte Themen