当前位置: 首页 > 工具软件 > iWeibo > 使用案例 >

腾讯 iweibo Java API 1.2.1 补充头像和个人信息更新功能接口

冯开诚
2023-12-01

腾讯 iweibo Java API 1.2.1 本身代码质量还算比较高的,虽然没有实现头像上载接口,但底层功能已经具备,只需少量修改即可。

 

负责用户信息更新和获取的API为 com.tencent.weibo.api.UserAPI,里面实现了info、otherInfo、infos等,却没有update_head接口,而既然可以发送图片微博,那参考图片微博的图片上载部分代码 com.tencent.weibo.api.TAPI 即可,以下是对UserAPI稍作添加和修改以实现头像更新。

 

以下红色部分为添加的内容

 

package com.tencent.weibo.api;

 

public class UserAPI extends BasicAPI
{

  private String userInfoUrl = apiBaseUrl + "/user/info";
  private String userOtherInfoUrl = apiBaseUrl + "/user/other_info";
  private String userInfosUrl = apiBaseUrl + "/user/infos";
  // 添加一个上载头像的接口路径,这个参考 http://dev.t.qq.com 接口介绍
  private String userUpdateHeadUrl = apiBaseUrl + "/user/update_head";
  private String userUpdateUrl = apiBaseUrl + "/user/update";
  ......

 

  // 函数内增加 userUpdateHeadUrl  设置

  public void setAPIBaseUrl(String apiBaseUrl)
  {
    this.apiBaseUrl = apiBaseUrl;
    userInfoUrl = apiBaseUrl + "/user/info";
    userOtherInfoUrl = apiBaseUrl + "/user/other_info";
    userInfosUrl = apiBaseUrl + "/user/infos";
    userUpdateHeadUrl = apiBaseUrl + "/user/update_head";

    userUpdateUrl = apiBaseUrl + "/user/update";
  }

 

  // 头像上载接口实现,3个参数,auth、format 和 picpatch

  public StringupdateHead(OAuth oAuth, String format, String picpath) throws Exception
  {
    QArrayList paramsList = new QArrayList();

    // 设置返回格式参数 "json" 或者 "xml"
    paramsList.add(new BasicNameValuePair("format", format));

    QArrayList pic = new QArrayList();

    // 传入 图片的绝对路径
    pic.add(new BasicNameValuePair("pic", picpath));
    return requestAPI.postFile(userUpdateHeadUrl, paramsList, pic, oAuth);
  }

 

// 个人信息更新接口

public String update(OAuth oAuth, String format, String nick, String sex, String year, String month, String day, String countrycode,
      String provincecode, String citycode, String introduction) throws Exception
{
  QArrayList paramsList = new QArrayList();

  paramsList.add(new BasicNameValuePair("format", format));
  paramsList.add(new BasicNameValuePair("nick", nick));
  paramsList.add(new BasicNameValuePair("sex", sex));
  paramsList.add(new BasicNameValuePair("year", year));
  paramsList.add(new BasicNameValuePair("month", month));
  paramsList.add(new BasicNameValuePair("day", day));
  paramsList.add(new BasicNameValuePair("countrycode", countrycode));
  paramsList.add(new BasicNameValuePair("provincecode", provincecode));
  paramsList.add(new BasicNameValuePair("citycode", citycode));
  paramsList.add(new BasicNameValuePair("introduction", introduction));

  return requestAPI.postContent(userUpdateUrl, paramsList, oAuth);
}

 

 

在接口处理前应该再加上文件检查代码,检查文件是否存在,再继续。

添加完毕后,重新生成 jar 文件即可在项目中使用了。

 

测试代码,授权部分略,经测试,成功实现头像更新。

 

/**
   * 更新自己的头像
   * @param oAuth
   */
  private static void testUserUpdateHead(OAuthV2 oAuth, String pic)
  {
    try
    {
      UserAPI user = new UserAPI(oAuth.getOauthVersion());
      log.info(user.updateHead(oAuth, "json",pic));
    }
    catch (Exception e)
    {
      e.printStackTrace();
    }
  }

 

 本文链接

Q群讨论:236201801

 

 类似资料: