4

我正在编写一个需要使用从客户端社交网络 VKontakte 获取的用户数据的应用程序。我确实授权了 VKontakte。

VKSdk.initialize(sdkListener, String.valueOf(idVK), VKAccessToken.tokenFromSharedPreferences(this, sTokenKey));

并获得了 AccessToken。现在我得到了姓名和电子邮件用户?

4

3 回答 3

8

您可以向用户请求电子邮件范围,然后从访问令牌获取电子邮件:

String email = VKSdk.getAccessToken().email;
String userId = VKSdk.getAccessToken().userId;

//Get user info
VKApi.users().get().executeWithListener(new VKRequest.VKRequestListener() {
    @Override
    public void onComplete(VKResponse response) {
        VKApiUser user = ((VKList<VKApiUser>)response.parsedModel).get(0);
        Log.d("User name", user.first_name + " " + user.last_name);
    }
});

但请记住,电子邮件仅在首次访问请求后可用。

老答案:

您无法收到电子邮件。这是不可用的。但是你可以得到用户名:

VKApi.users().get().executeWithListener(new VKRequest.VKRequestListener() {
    @Override
    public void onComplete(VKResponse response) {
        VKApiUser user = ((VKList<VKApiUser>)response.parsedModel).get(0);
        Log.d("User name", user.first_name + " " + user.last_name);
    }
});

于 2014-03-24T08:21:50.657 回答
0

目前,您无法获取用户电子邮件。

但是您可以通过类从用户个人资料中获取其他简单信息

java.lang.Object
    com.vk.sdk.VKObject
        com.vk.sdk.api.model.VKApiModel

以下是所有可用信息:http: //vkcom.github.io/vk-android-sdk/com/vk/sdk/api/model/VKUser.html

于 2014-03-06T11:38:59.037 回答
0

登录用户后,我使用此代码

 final VKRequest request = VKApi.users().get(VKParameters.from(VKApiConst.FIELDS, "photo_200, contacts"));
        request.executeWithListener(new VKRequest.VKRequestListener() {
            @Override
            public void onComplete(VKResponse response) {
                VKApiUserFull user = ((VKList<VKApiUserFull>)response.parsedModel).get(0);
                NavigationHelper.replaceFragment(getActivity().getSupportFragmentManager(), FrHome.newInstance(String.format("%s %s,", user.first_name, user.last_name), user.mobile_phone, user.photo_200), false);
            }
        });

列出您可以在此处找到的字段 https://vk.com/dev/users.get

于 2014-07-23T19:47:38.767 回答