如何从Oneall API获取电子邮件和显示名称


how to get email and display name from oneall API?

{
    "response": {
        "request": {
            "date": "Tue, 13 Sep 2011 11:24:28 +0200",
            "resource": "/users/2cec711d-ca14-4472-98c8-ca74432bc2d3.json",
            "status": {
                "flag": "success",
                "code": 200
            }
        },
        "result": {
            "data": {
                "user": {
                    "user_token": "2cec711d-ca14-4472-98c8-ca74432bc2d3",
                    "date_creation": "Tue, 1 Sep 2011 11:01:12 +0200",
                    "date_last_login": "Tue, 13 Sep 2011 01:05:07 +0200",
                    "num_logins": "64",
                    "identities": [{
                        "identity_token": "cd3bd13b-b393-4d6c-a7f6-950b4c47938f",
                        "provider": "twitter",
                        "id": "http://twitter.com/ExampleUser",
                        "displayName": "Firstname Lastname",
                        "name": {
                            "formatted": "Firstname Lastname"
                        },
                        "gender": "male",
                        "utcOffset": "2:00"
                    }, {
                        "identity_token": "3ab5257b-ba2b-4242-a7f6-950b4c47938f",
                        "provider": "facebook",
                        "id": "http://www.facebook.com/profile.php?id=1046121518",
                        "displayName": "Firstname Lastname",
                        "name": {
                            "formatted": "Firstname Lastname",
                            "givenName": "Firstname",
                            "familyName": "Lastname"
                        },
                        "gender": "male",
                        "birthday": "01/01/1980",
                        "utcOffset": "2:00",
                        "emails": [{
                            "value": "email@example.com",
                            "is_verified": "true"
                        }]
                    }]
                }
            }
        }
    }
}

上面的代码是 Result:ONEALL API 返回的代码我正在使用oneall api进行我的网站社交登录,登录后我通过使用用户令牌通过获取方法请求用户详细信息,使用$data->user->date_last_login获得上次登录等值,但是我无法收到电子邮件和dispalyname我该怎么做,我没有编写我给出的所有代码只是示例, 希望这对其他人也有帮助

http://docs.oneall.com/api/resources/users/read-user-details/

如果您遵循对象结构,则可以将它们获取为:

$data = json_decode($json);
$displayName = $data->response->result->data->user->identities[1]->displayName;
$email = $data->response->result->data->user->identities[1]->emails[0]->value;

更新:

如果您使用中间变量作为响应数据,则只需缩小链:

$json = json_decode($result_json);
//extract response data
$data = $json->response->result->data;
$displayName = $data->user->identities[1]->displayName;
$email = $data->user->identities[1]->emails[0]->value;

这将为您提供:

Firstname Lastname
email@example.com

在这里,我们根据您的 JSON 对象提供完整的代码:

<?php
    $result_json = '
        {
            "response": {
                    "request": {
                            "date": "Tue, 13 Sep 2011 11:24:28 +0200",
                            "resource": "/users/2cec711d-ca14-4472-98c8-ca74432bc2d3.json",
                            "status": {
                                    "flag": "success",
                                    "code": 200
                            }
                    },
                    "result": {
                            "data": {
                                    "user": {
                                            "user_token": "2cec711d-ca14-4472-98c8-ca74432bc2d3",
                                            "date_creation": "Tue, 1 Sep 2011 11:01:12 +0200",
                                            "date_last_login": "Tue, 13 Sep 2011 01:05:07 +0200",
                                            "num_logins": "64",
                                            "identities": [{
                                                    "identity_token": "cd3bd13b-b393-4d6c-a7f6-950b4c47938f",
                                                    "provider": "twitter",
                                                    "id": "http://twitter.com/ExampleUser",
                                                    "displayName": "Firstname Lastname",
                                                    "name": {
                                                            "formatted": "Firstname Lastname"
                                                    },
                                                    "gender": "male",
                                                    "utcOffset": "2:00"
                                            }, {
                                                    "identity_token": "3ab5257b-ba2b-4242-a7f6-950b4c47938f",
                                                    "provider": "facebook",
                                                    "id": "http://www.facebook.com/profile.php?id=1046121518",
                                                    "displayName": "Firstname Lastname",
                                                    "name": {
                                                            "formatted": "Firstname Lastname",
                                                            "givenName": "Firstname",
                                                            "familyName": "Lastname"
                                                    },
                                                    "gender": "male",
                                                    "birthday": "01/01/1980",
                                                    "utcOffset": "2:00",
                                                    "emails": [{
                                                            "value": "email@example.com",
                                                            "is_verified": "true"
                                                    }]
                                            }]
                                    }
                            }
                    }
            }
        }';
    $json = json_decode($result_json);
    $data = $json->response->result->data;
    echo $displayName = $data->user->identities[1]->displayName;
    echo '<br>';
    echo $email = $data->user->identities[1]->emails[0]->value;
?>