分享到 :

com.tencent.tauth.Tencent.ask

1. 接口说明

给应用好友发送请求、赠送礼物

2. 使用场景

用户可以向安装了同一应用的好友发起请求或者赠送礼物

3. 接口调用说明

3.1 接口方法

1)发送请求
int com.tencent.tauth.Tencent.ask(Activity arg0, Bundle arg1, IUiListener arg2)
2)赠送礼物
int com.tencent.tauth.Tencent.gift(Activity arg0, Bundle arg1, IUiListener arg2)

3.2 参数说明

Bundle 参数 是否必传 类型 参数说明
Constants.PARAM_RECEIVER 必传 String 若receiver包含OpenID,则表示使用模式一(应用指定接收者模式);若receiver为空,代表使用模式二(用户指定接收者模式) 
1) 传入的OpenID必须为应用内关系链,即为已安装该应用的QQ好友
2) 传入个数不得超过10个,若超过10个则自动截取前10个,剩余舍弃
授权使用应用内关系链的应用才可使用模式一(应用指定接收者)
  Constants.PARAM_TITLE 必传 String 免费礼物或请求名称(最多6个汉字)
Constants.PARAM_SEND_MSG 必传 String 礼物或请求的默认赠言,由应用传入,当应用未传入时使用系统默认赠言 
长度限制:35个汉字以内,超过限制自动截断
Constants.PARAM_IMG_URL 必传 String 请求或礼物配图的URL。如果不传,则默认在弹框中显示应用的icon
"exclude" 可选 String 在用户自己指定好友的场景中,如果开发者不希望某些用户显示在好友选择器中,可传入这些用户的openid,多个openid之间用“,”分隔(“exclude”和“specified”一共最多可传入50个openid),好友选择器则不显示这些openid对应的用户。
"specified" 可选 String 在用户自己指定好友的场景中,如果开发者需要在好友选择器中显示指定的用户,可传入这些用户的openid,多个openid之间用“,”分隔(“exclude”和“specified”一共最多可传入50个openid),好友选择器会显示这些openid对应的用户。
"only" 可选 String 仅当设置了“specified”,需要传入该参数,用于标识是否在好友选择器中只显示“specified”指定的用户。默认值为“0”。 
“0”:显示“specified”指定的用户,同时显示好友列表和已安装好友。
“1”:只显示“specified”指定的用户,无好友列表和已安装好友。此时必须保证“specified”有可用的openid传入,否则会报错。
Constants.PARAM_SOURCE 可选 String 由开发者自定义该参数内容,用于判断用户接收的哪个好友的礼物或请求。 
例如:
用户A向C赠送礼物/发送好友请求时,source的值为“openid=001”,用户B向C赠送礼物/发送好友请求时,source的值为“openid=002”。当用户C点击链接进入免费礼物或好友请求的查看页面时,url中会携带app_custom参数,app_custom的值为“openid=001”,说明C响应的是A的请求,如果app_custom的值为“openid=002”,说明C响应的是B的请求。

 3.3 示例代码

private void onClickAsk() {
	if (mTencent.isSessionValid() && mTencent.getOpenId() != null) {
		String receiverId = "15762FF138EE42D88FE2234D3B89C44B";
		String title = "title字段测试";
		String msg = "msg字段测试";
		String imgUrl = "http://i.gtimg.cn/qzonestyle/act/qzone_app_img/app888_888_75.png";
		Bundle b = new Bundle();
		b.putString(Constants.PARAM_RECEIVER, receiverId);
		b.putString(Constants.PARAM_TITLE, title);
		b.putString(Constants.PARAM_SEND_MSG, msg);
		b.putString(Constants.PARAM_IMG_URL, imgUrl);
		b.putString("exclude", "");
		b.putString("specified", "");
		b.putString("only", "0"); // 0或者1
		b.putString(Constants.PARAM_SOURCE, URLEncoder.encode(""));
		mTencent.ask(this, b, new BaseUiListener());
	}
}

3.4 返回码说明

0: 正确
其它: 失败
OpenAPI公共错误码说明详见:Android常见问题公共返回码说明

返回顶部