`

tencent API(二) 发表说说

阅读更多

上次已经讲到了怎么登入,下面演示下登入过后如何发说说(文字,图片,或视频)

1.发表文字说说

      public static final String GRAPH_ADD_TOPIC = "shuoshuo/add_topic";

(1)要发说说,肯定是要传递验证信息,首先要创建出一个信息的载体,这路是利用Bundle传递信息

       

private Bundle composeCGIParams() {
    	Bundle bundle = new Bundle();
    	//填上通用参数, 后台可能会对不同版本的请求做策略控制
    	bundle.putString("format", "json");
        bundle.putString("status_os", android.os.Build.VERSION.RELEASE);
    	bundle.putString("status_machine", android.os.Build.MODEL);
    	bundle.putString("status_version", android.os.Build.VERSION.SDK);
    	bundle.putString("sdkv", Constants.SDK_VERSION);
    	bundle.putString("sdkp", "a");
    	//读取用户登入信息
    	if (mToken != null && mToken.isSessionValid()) {
    		bundle.putString(Constants.PARAM_ACCESS_TOKEN, mToken.getAccessToken());
    		bundle.putString(Constants.PARAM_CONSUMER_KEY, mToken.getAppId());
    		bundle.putString(Constants.PARAM_OPEN_ID, mToken.getOpenId());
        }
    	
        // 此字段在openUrl2中取出,在获取config时填入,但不放在cgi请求参数中
    	bundle.putString("appid_for_getting_config", mToken.getAppId());

        // 从本地sharedpreference取出pf,填入params中
        SharedPreferences pfShared = this.getApplicationContext().getSharedPreferences(
                Constants.PREFERENCE_PF,
                Context.MODE_PRIVATE);
        String pf = pfShared.getString(Constants.PARAM_PLATFORM_ID, Constants.DEFAULT_PF);
        bundle.putString(Constants.PARAM_PLATFORM_ID, pf);
    	return bundle;
    }

 (2).传递要发的说说内容

   

/**
 * 发表说说
*/
private void onClickAddTopic() {
		
       Bundle params = composeCGIParams();
       params.putString("richtype", "2");// 发布心情时引用的信息的类型。1表示图片;
                                         // 2表示网页; 3表示视频。
       params.putString("richval",
               ("http://www.qq.com" + "#" + System.currentTimeMillis()));// 发布心情时引用的信息的值。有richtype时必须有richval
       params.putString("con", "测试:调用腾讯测试api成功!");// 发布的心情的内容。
       params.putString("lbs_nm", "美国硅谷");// 地址文
       params.putString("lbs_x", "0-360");// 经度。请使用原始数据(纯经纬度,0-360)。
       params.putString("lbs_y", "0-360");// 纬度。请使用原始数据(纯经纬度,0-360)。
       params.putString("lbs_id", "360");// 地点ID。lbs_id与lbs_idnm通常一起使用,来明确标识一个地址。
       params.putString("lbs_idnm", "微软");// 地点名称。lbs_id与lbs_idnm通常一起使用,来明确标识一个地址。
       mTencent.requestAsync(GRAPH_ADD_TOPIC, params,
               Constants.HTTP_POST, new BaseApiListener("add_topic", true), null);
       mProgressDialog.show();
   } 

 3.再创建一个监听类来结束返回内容

 

private class BaseApiListener implements IRequestListener {
		private String mScope = "all";
		private Boolean mNeedReAuth = false;

		public BaseApiListener(String scope, boolean needReAuth) {
			mScope = scope;
			mNeedReAuth = needReAuth;
		}

		@Override
		public void onComplete(JSONObject response) {
			// TODO Auto-generated method stub
			showResult("onComplete:", response.toString());
			doComplete(response);
		}

		protected void doComplete(JSONObject response) {
			try {
				int ret = response.getInt("ret");
				if (ret == 100030) {
					if (mNeedReAuth) {
						Runnable r = new Runnable() {
							public void run() {
								mTencent.reAuth(MainActivity.this, mScope,
										new BaseUiListener());
							}
						};
						MainActivity.this.runOnUiThread(r);
					}
				}
			} catch (JSONException e) {
				e.printStackTrace();
				Log.e("toddtest", response.toString());
			}

		}

		@Override
		public void onIOException(final IOException e) {
			showResult("IRequestListener.onIOException:", e.getMessage());
		}

		@Override
		public void onMalformedURLException(final MalformedURLException e) {
			showResult("IRequestListener.onMalformedURLException", e.toString());
		}

		@Override
		public void onJSONException(final JSONException e) {
			showResult("IRequestListener.onJSONException:", e.getMessage());
		}

		@Override
		public void onConnectTimeoutException(ConnectTimeoutException arg0) {
			showResult("IRequestListener.onConnectTimeoutException:",
					arg0.getMessage());

		}

		@Override
		public void onSocketTimeoutException(SocketTimeoutException arg0) {
			showResult("IRequestListener.SocketTimeoutException:",
					arg0.getMessage());
		}

		@Override
		public void onUnknowException(Exception arg0) {
			showResult("IRequestListener.onUnknowException:", arg0.getMessage());
		}

		@Override
		public void onHttpStatusException(HttpStatusException arg0) {
			showResult("IRequestListener.HttpStatusException:",
					arg0.getMessage());
		}

		@Override
		public void onNetworkUnavailableException(
				NetworkUnavailableException arg0) {
			showResult("IRequestListener.onNetworkUnavailableException:",
					arg0.getMessage());
		}

	}

}

  

 2.发表视频说说

 public static final String GRAPH_ADD_SHARE = "share/add_share";

 

 
/**
* qq分享视频
*/
private void onClickAddShare() {
if (ready()) {
Bundle parmas = composeCGIParams();
parmas.putString("title", "QQ登陆SDK:Add_Share测试");
// 必须。feeds的标题,最长36个中文字,超出部分会被截断。
parmas.putString("url",
"http://www.qq.com" + "#" + System.currentTimeMillis());
// 必须。分享所在网页资源的链接,点击后跳转至第三方网页,请以http://开头。
parmas.putString("comment", ("QQ登陆SDK:测试comment" + new Date()));
// 用户评论内容,也叫发表分享时的分享理由。禁止使用系统生产的语句进行代替。最长40个中文字,超出部分会被截断。
parmas.putString("summary", "QQ登陆SDK:测试summary");
// 所分享的网页资源的摘要内容,或者是网页的概要描述。最长80个中文字,超出部分会被截断。
parmas.putString("images",
"http://imgcache.qq.com/qzone/space_item/pre/0/66768.gif");
// 所分享的网页资源的代表性图片链接",请以http://开头,长度限制255字符。多张图片以竖线(|)分隔,目前只有第一张图片有效,图片规格100*100为佳。
parmas.putString("type", "5");// 分享内容的类型。
parmas.putString("playurl",
"http://player.youku.com/player.php/Type/Folder/Fid/15442464/Ob/1/Pt/0/sid/XMzA0NDM2NTUy/v.swf");// 长度限制为256字节。仅在type=5的时候有效。
mTencent.requestAsync(GRAPH_ADD_SHARE, parmas, Constants.HTTP_POST,
new BaseApiListener("add_share", true), null);
	mProgressDialog.show();
		}
}
 判断是否已经登入
      /**
	 * 判断是否已经登入成功
	 * 
	 * @return
	 */
	private boolean ready() {
		boolean ready = mTencent.isSessionValid()
				&& mTencent.getOpenId() != null;
		if (!ready)
			Toast.makeText(this, "login and get openId first, please!",
					Toast.LENGTH_SHORT).show();
		return ready;
	}
   


 
 
  • 大小: 21.4 KB
  • 大小: 40.8 KB
分享到:
评论

相关推荐

    腾讯API修改后的调用Tencent

    腾讯(Tencent)API修改后的调用 这个是我自己修改以后的! 声明:仅个人的建议。

    tencent-apigateway:使用无服务器组件轻松配置腾讯API网关

    腾讯云API网关组件 简介 通过API网关组件,可以快速,方便的创建,配置和管理腾讯云的API网关产品。 快速开始: 1.安装 通过npm安装最新版本的 $ npm install -g serverless 2.配置 本地创建serverless.yml文件,在...

    基于Node.js的Tencent Cloud API 3.0 TypeScript SDK设计源码

    该项目是一个基于Node.js的Tencent Cloud API 3.0 TypeScript SDK设计源码,包含3610个文件,其中2209个为TypeScript文件,1391个为JavaScript文件,并包含少量的Markdown、JSON、Git忽略、LICENSE、Protocol缓冲区...

    Python库 | tencentcloud-sdk-python-apigateway-3.0.492.tar.gz

    《Python库 TencentCloud SDK for API Gateway 3.0.492详解》 在Python开发领域,TencentCloud SDK for API Gateway是一个至关重要的工具,它为开发者提供了与腾讯云API Gateway服务交互的能力。该库是腾讯云官方...

    PyPI 官网下载 | tencentcloud-sdk-python-apigateway-3.0.553.tar.gz

    《PyPI官网下载的tencentcloud-sdk-python-apigateway-3.0.553.tar.gz详解》 PyPI(Python Package Index)是Python开发者的重要资源库,它提供了丰富的Python库,供全球开发者免费下载使用。本文将深入探讨在PyPI...

    Python库 | tencentcloud-sdk-python-api-3.0.418.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:tencentcloud-sdk-python-api-3.0.418.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    tencentOS-ting-103版本.zip

    tencentOS ting提供了丰富的API接口,方便开发者进行设备驱动开发和应用程序编写,同时支持多种通信协议,如TCP/IP、MQTT等,便于设备接入云端服务。 在单片机上移植tencentOS ting,首先需要了解目标单片机的硬件...

    腾讯 APIJSON 各种语言、各种框架 的 使用示例项目、上手文档、测试数据 SQL 文件 等

    腾讯 APIJSON 各种语言、各种框架 的 使用示例项目、上手文档、测试数据 SQL 文件 等。

    PyPI 官网下载 | tencentcloud-sdk-python-apigateway-3.0.267.tar.gz

    《PyPI官网下载的tencentcloud-sdk-python-apigateway-3.0.267.tar.gz:腾讯云API网关Python SDK详解》 在Python的世界里,PyPI(Python Package Index)是开发者们获取和分享Python软件包的主要平台。本文将深入...

    Python库 | tencentcloud-sdk-python-api-3.0.440.tar.gz

    首先,`tencentcloud-sdk-python-api`是腾讯云官方推出的Python SDK,它包含了腾讯云所有服务的客户端API,覆盖了计算、存储、网络、数据库、安全、CDN、AI等多个领域。这个3.0.440版本是SDK的一个稳定版本,提供了...

    com.tencent.ig.zip

    2. **游戏代码**:可能包含游戏的逻辑处理、用户界面、网络通信等功能的源代码或编译后的二进制文件。 3. **配置文件**:用于设置游戏的各种参数,如难度级别、角色属性、游戏规则等。 4. **库文件**:游戏可能依赖...

    TencentOS-tiny.zip

    7. **doc**:文档目录,可能包括用户手册、开发者指南、API参考等,帮助用户理解和使用TencentOS tiny。 8. **examples**:示例代码目录,提供了一些简单的应用或功能示例,方便开发者学习和理解如何在TencentOS ...

    tencentcloud-sdk-nodejs-node.js

    Tencent Cloud API 3.0 SDK for Node.js node.js node.js node.js node.js node.js

    Tencent.zip

    而地理定位API则可以让网站获取用户的地理位置信息,提供更加个性化的服务。 “Tencent_INV.html”和“Tencent_MA.html”可能涉及投资和市场相关内容。HTML5的拖放功能(drag and drop)和媒体查询(media queries...

    tencentcloud-ims插件是一款腾讯云研发的,提供给WordPress站长使用的官方插件

    接着,需要配置插件,这通常包括在腾讯云创建API密钥并输入到插件设置中,以便插件能正常调用内容审核服务。 此外,tencentcloud-ims插件还可能提供了自定义设置选项,例如设置敏感度级别,调整检测策略以适应不同...

    PyPI 官网下载 | tencentcloud-sdk-python-trtc-3.0.512.tar.gz

    二、Python库tencentcloud-sdk-python-trtc 这个Python库是腾讯云TRTC服务的客户端接口,它允许Python开发者在Python环境中调用TRTC的各种API,实现音视频通话的功能。该库提供了丰富的接口,包括但不限于创建房间...

    _storage_emulated_0_android_data_com.tencent.mobileqq_Tencent_QQfile_recv_.TbsReaderTempcom.tencent.mobileqq_83ca8a5fc862397bd03b8fa8d9944926.dat

    _storage_emulated_0_android_data_com.tencent.mobileqq_Tencent_QQfile_recv_.TbsReaderTempcom.tencent.mobileqq_83ca8a5fc862397bd03b8fa8d9944926.dat

    tencentCloud.zip

    【标题】"tencentCloud.zip" 提供了一个与腾讯云对象存储服务(Cloud Object Storage,简称COS)相关的开发实践,特别提到了将ThinkPHP5(TP5)框架的扩展功能整合到`extend`目录下。 【描述】"腾讯去COS,TP5放在...

    Python库 | tencentcloud-sdk-python-apigateway-3.0.511.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:tencentcloud-sdk-python-apigateway-3.0.511.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    腾讯微博api封装

    `src`目录下存放源代码,可能有`com.tencent.weibo.api`等包结构,里面包含了具体的API接口实现。`.settings`、`.project`和`.classpath`是Eclipse或IDEA等开发环境的配置文件,帮助管理项目结构和编译设置。 封装...

Global site tag (gtag.js) - Google Analytics