获取用户的头像VK SDK

时间:2014-05-31 10:21:58

标签: java android eclipse vk

美好的一天。关于使用库VK的问题。如何使用VKSDK获取个人资料图片 无法在互联网上找到合适的信息。

3 个答案:

答案 0 :(得分:7)

在您的请求中,您需要指定以下字段之一: photo_50或photo_100或photo_200:

VKRequest yourRequest = VKApi.users().get(VKParameters.from(VKApiConst.FIELDS,"photo_50"))

之后,当您检索用户数据时,您可以获得photo_50:

yourRequest.executeWithListener(new VKRequest.VKRequestListener() {
@Override
public void onComplete(VKResponse response) {
    super.onComplete(response);

    VKUsersArray usersArray = (VKUsersArray) response.parsedModel;

    for (VKApiUserFull userFull : usersArray) {
          Log.i(TAG, "Avatar image URL: " + userFull.photo_50);            
        }
    }
}

答案 1 :(得分:0)

对于Android应用:

您可以通过发送以下请求获取个人资料照片:

    https://api.vk.com/method/users.get?user_id=5337911&v=5.23&fields=photo_50

对于iframe应用程序:

您应该使用VK.api

users.get方法
    VK.api('users.get', {
        user_ids: id,
        fields: "photo_50"
    }, function(data) {
        photo_50 = data.response[0].photo_50;
    });

如果您不知道VK.api是什么,那么您应该阅读Javascript SDK

答案 2 :(得分:0)

好吧,我的朋友用自己的解决方案解决了这个问题,并且这种解决方案可以100%工作

public class RootVKAccount
{
    public List<VKAccount> response { get; set; }
}

[JsonObject("response")]
public class VKAccount
{
    [JsonProperty("photo_200")]
    public string UserImgUrl { get; set; }
}

HttpWebRequest request = WebRequest.Create($@"https://api.vk.com/method/users.get?owner_id={UserId}&fields=photo_200&access_token={Token}&v=5.92") as HttpWebRequest;
    HttpWebResponse respons = request.GetResponse() as HttpWebResponse;

Stream jsonStream = respons.GetResponseStream();
StreamReader r = new StreamReader(jsonStream);
string jsonStr = r.ReadToEnd();
r.Dispose();
var obj = JsonConvert.DeserializeObject<RootVKAccount>(jsonStr);

string uri = obj.response[0].UserImgUrl;
new WebClient().DownloadFile(uri, avatarFullPAth);