我正在编写一个需要使用从客户端社交网络 VKontakte 获取的用户数据的应用程序。我确实授权了 VKontakte。
VKSdk.initialize(sdkListener, String.valueOf(idVK), VKAccessToken.tokenFromSharedPreferences(this, sTokenKey));
并获得了 AccessToken。现在我得到了姓名和电子邮件用户?
您可以向用户请求电子邮件范围,然后从访问令牌获取电子邮件:
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);
}
});
目前,您无法获取用户电子邮件。
但是您可以通过类从用户个人资料中获取其他简单信息
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
登录用户后,我使用此代码
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