我正在编写一个 python 桌面应用程序,它将访问用户的 facebook 照片。该应用程序当前支持 flickr,它使用类似的 oauth 身份验证过程,但我正在努力弄清楚如何为 facebook 验证应用程序。对于 flickr,基本步骤是:
- 应用在身份验证页面上打开浏览器
- 用户授予应用访问该帐户的权限
- 应用程序接收一个令牌作为 http 响应,然后可以与 flickr 的 api 一起使用
我希望 facebook 也有类似的东西,但我无法弄清楚。
有多种用于 python 的 facebook API 库,例如 Pyfb,它提供了一种访问图形数据的简单方法,但它们都没有提供一种明显的方法来执行上述身份验证步骤并检索可以使用的令牌。这是来自 Pyfb 的示例,它假定用户令牌将由用户手动输入,这对于桌面应用程序来说是完全荒谬的......
from pyfb import Pyfb
#Your APP ID. You Need to register the application on facebook
#http://developers.facebook.com/
FACEBOOK_APP_ID = 'YOUR_APP_ID'
pyfb = Pyfb(FACEBOOK_APP_ID)
#Opens a new browser tab instance and authenticates with the facebook API
#It redirects to an url like http://www.facebook.com/connect/login_success.html#access_token=[access_token]&expires_in=0
pyfb.authenticate()
#Copy the [access_token] and enter it below
token = raw_input("Enter the access_token\n")
#Sets the authentication token
pyfb.set_access_token(token)
#Gets info about myself
me = pyfb.get_myself()