qq互联unionid介绍-云顶集团3118

qq互联unionid介绍

qq互联unionid介绍

此接口用于获取个人信息。开发者可通过openid来获取用户的基本信息。特别需要注意的是,如果开发者拥有多个移动应用、网站应用,可通过获取用户的unionid来区分用户的唯一性,因为只要是同一qq互联平台下的不同应用,unionid是相同的。换句话说,同一用户,对同一个qq互联平台下的不同应用,unionid是相同的。(已支持云顶集团3118官网自助获取:)

(一)https请求方式:get

https://graph.qq.com/oauth2.0/me?access_token=accesstoken&unionid=1
参数是否必需说明
access_token 是用户凭证
unionid 否是否申请unionid
fmt 否因历史原因,默认是jsonpb格式,如果填写json,则返回json格式

返回说明:
正确的返回结果(如果fmt参数未指定json)

callback(
{
  "client_id":"your_appid",
  "openid":"your_openid",
  "unionid":"your_unionid"
}
);

错误的(如果fmt参数未指定json)返回示例

callback(
{
  "error":100016,
  "error_description":"access token check failed",
}
);
错误码描述说明
100016access token check failed用户凭据过期(30天)或者不正确
100048companyid not set未申请unionid接口调用权限,请邮件申请

(二)android_sdk 请求方式:

调用获取unionid信息接口的示例代码如下

private void getunionid() {
   if (mtencent != null && mtencent.issessionvalid()) {
     iuilistener listener = new iuilistener() {
       @override
       public void onerror(uierror e) {
        toast.maketext(mainactivity.this,"onerror",toast.length_long).show();
       }
       @override
       public void oncomplete(final object response) {
         if(response != null){
           jsonobject jsonobject = (jsonobject)response;
           try {
             string unionid = jsonobject.getstring("unionid");
             util.showresultdialog(mainactivity.this, "unionid:\n" unionid, "oncomplete");
             util.dismissdialog();
           }catch (exception e){
             toast.maketext(mainactivity.this,"no unionid",toast.length_long).show();
           }
        }else {
           toast.maketext(mainactivity.this,"no unionid",toast.length_long).show();
        }
      }
      @override
      public void oncancel() {
        toast.maketext(mainactivity.this,"oncancel",toast.length_long).show();
      }
    };
    unioninfo unioninfo = new unioninfo(this, mtencent.getqqtoken());
    unioninfo.getunionid(listener);
   } else {
     toast.maketext(this,"please login frist!",toast.length_long).show();
   }
 }

返回说明:
正确的返回结果

{
"client_id":"your_appid",
"openid":"your_openid",
"unionid":"your_unionid"
}

(三)ios_sdk 请求方式:
调用获取unionid信息接口的示例代码如下

bool bret = [[[sdkcall getinstance] oauth] requestunionid];
if (!bret) {
  uialertview *alertview = [[uialertview alloc] initwithtitle:@"提示" message:@"信息不足,请先登录。" 
  delegate:nil cancelbuttontitle:@"好的" otherbuttontitles:nil, nil];
  [alertview show];
  __release(alertview);
}

返回说明:
如果获取成功会在tencentlogindelegate的didgetunionid回调中回调,最后在oauth实例中获取,正确的返回结果

nsstring *result = [nsstring stringwithformat:@"获取成功 appid = %@,\n openid = %@,\n unionid = %@",
[[sdkcall getinstance].oauth.appid],
[sdkcall getinstance].oauth.openid,
[sdkcall getinstance].oauth.unionid];
说明
client_id应用唯一标识
openidqq用户在应用的唯一账号标识,同一个用户在不同应用的openid不一样。
unionidqq用户在开发者在多个应用间(打通后)的标识,打通后,不同应用的unionid一样

(1)开发者应该注意保存openid、unionid信息,以便以后在不同应用之间进行用户信息互通;
(2)同一开发者名下最多支持60个应用进行unionid打通,请开发者申请时注意;

(3) unionid至少是36个字节长度,建议开发者预留64字节存储空间。

编辑:yimen,如若转载,请注明出处:https://www.yimenapp.com/kb-yimen/14472/

部分内容来自网络投稿,如有侵权联系立删

(0)
上一篇 2022年12月5日 下午5:27
下一篇 2022年12月5日 下午6:31

相关推荐

网站地图