【问题标题】:Parse email from LinkedIn v2 api从 LinkedIn v2 api 解析电子邮件
【发布时间】:2020-06-12 22:14:25
【问题描述】:

LinkedIn 的 v2 API 有一个单独的 url 来获取电子邮件地址。 JSON 响应是单个对象数组。有人可以帮我解析该对象以获取电子邮件地址吗? LinkedIn URL:https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~)) 返回此 JSON

["elements": <__NSSingleObjectArrayI 0x600000e8e760>(
{
    handle = "urn:li:emailAddress:123456789";
    "handle~" =     {
        emailAddress = "john123@gmail.com";
    };
}
)
]

JSON 响应被放入 String:Any 对象中。

if let emailOnly = response.jsonObject as? [String: Any] {
let emailAddress = (emailOnly["elements"]
                    as? [String:Any])?["handle~"] as? String ?? ""
print("emailaddress is ->", emailAddress)

emailAddress 在最后一条语句之后为空。

完整代码如下:

linkedinHelper.requestURL("https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~))", requestType: LinkedinSwiftRequestGet, success: {(response) -> Void in
        if let emailOnly = response.jsonObject as? [String: AnyObject {
            let emailAddress = (emailOnly["elements"]
                as? [String: Any])?["handle~"] as? String ?? ""
            print("emailaddress is ->", emailAddress)
        }
    })

【问题讨论】:

  • 您好,欢迎来到stackoverflow,您能提供一些示例代码和示例响应对象吗?

标签: json swift linkedin linkedin-api


【解决方案1】:

我发现以下代码 sn-p 有效。

linkedinHelper.requestURL("https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~))", requestType: LinkedinSwiftRequestGet, success: {(response) -> Void in
        if let dictEmailOnly = response.jsonObject as? [String: Any] {
            if let x = dictEmailOnly["elements"] as? [[String:Any]],
               let y = x.first {
                let linkedInEmail = (y["handle~"] as? [String: Any])?["emailAddress"] as? String ?? ""
                print(linkedInEmail)
            }
        }
    })

【讨论】:

    【解决方案2】:

    你可以做的回应-> response.elements[0]["handle~"].emailAddress

    【讨论】:

      【解决方案3】:

      你可以试试:

      ->elements[0]->{"handle~"}->emailAddress
      

      【讨论】:

      • 是的,这绝对是完美的。我正在使用 PHP Curl 通过调用“api.linkedin.com/v2/…*(handle~))&oauth2_access_token=YOUR_ACCESS_TOKEN 来获取经过身份验证的用户的电子邮件。
      猜你喜欢
      • 1970-01-01
      • 2014-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多