2013-05-24 39 views
7

Tôi đã tìm thấy this Library có vẻ như đó là hình thức chính thức, sau đó found this, nhưng mỗi khi tôi tìm thấy câu trả lời, một nửa là liên kết đến Facebook API Documentation, nói về Javascript hoặc PHP và cách trích xuất từ ​​liên kết!Cách nhận mã thông báo truy cập Facebook bằng thư viện Python?

Tôi làm cách nào để tạo tập lệnh python đơn giản?

NB: những gì tôi thực sự không hiểu, tại sao sử dụng thư viện và không thể trích xuất token nếu chúng tôi có thể sử dụng urllibregex để trích xuất thông tin?

Trả lời

6

Javascript và PHP có thể được sử dụng làm ngôn ngữ phát triển web. Bạn cần có giao diện người dùng web để người dùng cấp quyền để bạn có thể lấy mã thông báo truy cập.

rephrased: Bạn không thể có được access token lập trình, thì phải có sự tương tác hướng dẫn sử dụng

Trong Python nó sẽ liên quan đến việc thiết lập một máy chủ web, ví dụ như một kịch bản để cập nhật feed sử dụng facepy

import web 
from facepy import GraphAPI 
from urlparse import parse_qs 

url = ('/', 'index') 

app_id = "YOUR_APP_ID" 
app_secret = "APP_SECRET" 
post_login_url = "http://0.0.0.0:8080/" 

user_data = web.input(code=None) 

if not user_data.code: 
    dialog_url = ("http://www.facebook.com/dialog/oauth?" + 
           "client_id=" + app_id + 
           "&redirect_uri=" + post_login_url + 
           "&scope=publish_stream") 

    return "<script>top.location.href='" + dialog_url + "'</script>" 
else: 
    graph = GraphAPI() 
    response = graph.get(
     path='oauth/access_token', 
     client_id=app_id, 
     client_secret=app_secret, 
     redirect_uri=post_login_url, 
     code=code 
    ) 
    data = parse_qs(response) 
    graph = GraphAPI(data['access_token'][0]) 
    graph.post(path = 'me/feed', message = 'Your message here') 
+0

ahhhh! những gì tôi cần! giải pháp hoàn chỉnh, chỉ là câu hỏi cuối cùng, 'post_login_url' là liên kết tôi đã đăng ký khi tạo ứng dụng facebook (localhost: 8888)? – Abdelouahab

+1

@Abdelouahab ở trên tạo ra một máy chủ web tại địa phương: 8888 vì vậy tôi chỉ chuyển hướng trở lại địa phương: 8888 sau khi xác thực như vậy 'top.location.href' (mặc dù câu trả lời cho câu hỏi của bạn là có cho ví dụ cụ thể này) – phwd

+0

ah! rằng những gì tôi cần;) cảm ơn bạn :) – Abdelouahab

2

đây là một Gist tôi đã cố gắng để thực hiện bằng Tornado kể từ khi câu trả lời sử dụng web.py

https://gist.github.com/abdelouahabb/5647185

+0

Xin chào, tôi không quen thuộc với cơn lốc xoáy và tôi đang gặp khó khăn khi hiểu nơi tôi nên đặt mã thông báo truy cập, bí mật ứng dụng và ID ứng dụng của tôi, bạn có thể giúp tôi không? – BioShock

9

Không chắc liệu điều này có giúp ích gì cho ai không, nhưng tôi có thể nhận được oauth_access_token bằng cách làm theo mã này.

from facepy import utils 
app_id = 134134134134 # must be integer 
app_secret = "XXXXXXXXXXXXXXXXXX" 
oath_access_token = utils.get_application_access_token(app_id, app_secret) 

Hy vọng điều này sẽ hữu ích.

+0

cảm ơn bạn, sử dụng lốc xoáy sẽ luôn cập nhật mã thông báo: D – Abdelouahab

Các vấn đề liên quan