Twitter授权使用Hello.js库但无法接收电子邮件

时间:2016-01-09 15:59:01

标签: javascript hello.js

我正在使用Hello.js进行Twitter登录。我这样做:http://adodson.com/hello.js/demos/twitter.html但我无法收到电子邮件。我试图设置范围电子邮件,但它也不起作用。

这是我的代码:

var twitter = hello('twitter');

            twitter.login({ scope: 'email' }).then(function(auth){
                    return twitter.api('me');
                })
                .then( function(profile){
                    console.log(profile); // here I received full user data without email
                });
            };

3 个答案:

答案 0 :(得分:0)

您无法从Twitter API获取用户电子邮件。它不可用。

编辑:对不起,现在似乎有可能。点击此处 - https://dev.twitter.com/rest/reference/get/account/verify_credentials - 但您需要发送电子邮件至Twitter。

  

申请用户的电子邮件地址需要您的申请   Twitter列入白名单。要请求访问权限,请使用此表单。

     

列入白名单后,“请求用户发送电子邮件地址”复选框   将在apps.twitter.com上以您的应用权限提供。   隐私政策URL和服务条款URL字段也将是   在电子邮件访问所需的设置下可用。如果   启用后,将通过oauth / authorize对话框通知用户   您的应用可以访问他们的电子邮件地址。

答案 1 :(得分:0)

遗憾的是,没有办法将电子邮件范围从客户端强制执行到Twitter API等OAuth1提供程序。可编程示波器的概念来自OAuth2。

HelloJS文档已知每个服务支持哪些可编程范围。请参阅https://adodson.com/hello.js/#scope的表格。这不是一个全面的列表,因此查阅提供者文档也很有成效。

答案 2 :(得分:0)

我更改了hello.all.js文件。将 include_email = true 表达式添加到 verify_credentials.json

---

get: {      me: 'account/verify_credentials.json?include_email=true',

---

所以我可以收到电子邮件

  function login(){
        // Twitter instance
        var twitter = hello('twitter');
        // Login
        twitter.login({ scope: 'email' }).then(function(r){
            // Get Profile
            return twitter.api('me');
        }, function(e) {
             alert('Signin error: ' + e.error.message);
         } )
        .then( function(p){
            // Get email
            alert('email: ' + p.email)
        }, log );       
   }       

   function log(){
       console.log(arguments);
   }