【问题标题】:How do I get email address field using the LinkedIn Javascript API?如何使用 LinkedIn Javascript API 获取电子邮件地址字段?
【发布时间】:2013-11-19 13:21:08
【问题描述】:

我正在使用 LinkedIn Javascript API 将用户登录到我的应用程序,但是即使我需要该特定字段的权限,API 也不会返回电子邮件地址。我包含的 API 脚本如下:

<script type="text/javascript" src="//platform.linkedin.com/in.js">
  api_key: API_KEY
  scope: r_fullprofile r_emailaddress
</script>

然后我在标记中包含登录按钮:

<script type="in/Login" data-onAuth="onLinkedInAuth">

最后我有一个函数可以为 API 响应添加回调:

function onLinkedInAuth() {
    var fields = ['first-name', 'last-name', 'email-address'];

    IN.API.Profile("me").fields(fields).result(function(data) {
        console.log(data);
    }).error(function(data) {
        console.log(data);
    });
};

我只得到名字和姓氏,但 API 没有返回电子邮件字段。

参考:https://developer.linkedin.com/documents/profile-fields#email

【问题讨论】:

    标签: javascript api linkedin


    【解决方案1】:

    你好@Ulises Figueroa, 可能我来的有点晚,但这就是我完成这项工作的方式:

    从页面顶部的 head 部分中的初始脚本标记开始:

    <script>
        Client Id Number here:
        onLoad: onLinkedInLoad
        authorize: true
    </script>
    

    然后,在您的 JS 文件中,(我放置了一个外部 JS 文件来处理此 API 注册/身份验证),放置以下详细信息:

    function onLinkedInLoad() {
        IN.Event.on(IN, "auth", getProfileData);
    }
    
    function onSuccess(data) {
        console.log(data);
    }
    
    function onError(error) {
        console.log(error);
    }
    
        function getProfileData(){
            IN.API.Profile("me").fields(["firstName","lastName", "email-address", "positions"]).result(function(data) {
                var profileData = data.values[0];
                var profileFName = profileData.firstName;
                var profileLName = profileData.lastName;
    
                if(data.values[0].positions._total == "0" || data.values[0].positions._total == 0 || data.values[0].positions._total == undefined) {
                    console.log("Error on position details");
                    var profileCName = "Details Are Undefined";
                }
                else {
                    var profileCName = profileData.positions.values["0"].company.name;
                }
                var profileEName = profileData.emailAddress;
    
                //console.log all the variables which have the data that 
                //has been captured through the sign up auth process and
                //you should get them...
    
            });
        }
    

    最后但并非最不重要的一点是,在您的 HTML 文档中添加以下内容,这可以帮助您启动linkedin auth 注册表单的弹出窗口:

    <script type="in/Login"></script>
    

    上述设置对我有用。当然这会对你有所帮助。

    干杯,祝你有美好的一天。

    【讨论】:

    • 你是怎么用JS做认证的?你能指导我吗?我遵循相同的步骤,我能够登录并获取用户详细信息。但是我需要获取访问令牌并发送回我的服务器 api,以便我们从服务器检查 LinkedIn 帐户公司的更新。
    【解决方案2】:

    1- 确保您在您的应用程序中设置了电子邮件权限 (r_emailaddress) http://developer.linkedin.com/documents/authentication#granting

    2-那么你可以使用这个

        <script type="text/javascript" src="http://platform.linkedin.com/in.js">
            api_key: key
            **onLoad: onLinkedInLoad**
            authorize: true
        </script>
    
        <script>
    
    
    
            function onLinkedInLoad() {
                IN.Event.on(IN, "auth", onLinkedInAuth);
            }
    
            // 2. Runs when the viewer has authenticated
            function onLinkedInAuth() {
    
                IN.API.Profile("me").fields("first-name", "last-name", "email-address").result(function (data) {
                    console.log(data);
                }).error(function (data) {
                    console.log(data);
                });
             }
    </script>
    

    希望这会对你有所帮助:) 谢谢

    【讨论】:

      【解决方案3】:

      我发现这只发生在某些 LinkedIn 帐户中,因此这可能是由于电子邮件的某些隐私设置引起的。我找不到对文档的任何引用,因此我不得不考虑电子邮件字段不可用时的情况。

      【讨论】:

        【解决方案4】:

        实施看起来不错。我相信这是个人资料隐私设置的结果。每个链接的文档:

        并非所有字段都可用于所有配置文件。可用字段取决于您代表提出请求的用户与会员之间的关系、会员选择提供的信息以及他们的隐私设置。 您不应假定为给定成员返回 id 以外的任何内容。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-08-01
          • 2014-06-01
          • 2019-02-28
          • 2023-03-05
          • 2012-08-19
          • 1970-01-01
          • 2011-11-02
          相关资源
          最近更新 更多