我正在尝试为我正在开发的应用程序实施Facebook登录。
我正在获取这样的访问令牌:
dateTime = NSDate(dateWithTimeIntervalSinceReferenceDate:Double(activityInfo["eventDateTime"] as! String))
我的服务器然后从这样的URL中捕获访问令牌(Python 2,因为我必须支持似乎不支持Python 3的Google OAuth SDK。):
<!DOCTYPE html>
<html>
<head></head>
<body>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '[Redacted]',
xfbml : true,
version : 'v2.6'
});
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
window.location = "http://[my domain]/FBloginAuth?"+FB.getAuthResponse()["accessToken"]
} else {
window.location = encodeURI("https://www.facebook.com/dialog/oauth?scope=email&client_id=[redacted]&redirect_uri=http://[my domain]/FBloginAuth&response_type=token");
}
});
};
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "http://connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
<div id="status"></div>
</body>
</html>
我知道这并没有解析url中存在变量的情况。这不是重点。现在我正在手动喂食令牌。代码呕吐:
graph = facebook.GraphAPI(access_token=environ["QUERY_STRING"]) # Apparently there is an extrea
profile = graph.get_object('me')
args = {'fields' : 'id,name,email', }
profile = graph.get_object('me', **args)
print(profile)
我的问题是,当我在请求令牌时设置范围时,电子邮件没有出现在响应中。另外,我该怎么做才能收到电子邮件?
答案 0 :(得分:0)
确保
a)用户实际上已向您的应用授予了权限(请求/me/permissions
使用相同的访问令牌进行确认)和