您的位置:首页 > 运维架构

腾讯open API接入心得

2016-02-04 16:27 330 查看
关于open API的接入我也是最近才在学习,下面是我做腾讯open API接入是的一些心得,可能不会很全面,但是希望能帮助到那些刚开始做接入的彤彤。

首先,必须要做的准备:

1.在腾讯的开放平台上去看新手指引。地址:http://open.qq.com/

2.注册成为开发者之后,下载sdk,地址:http://wiki.open.qq.com/wiki/mobile/SDK%E4%B8%8B%E8%BD%BD

3.我目前做的只是android平台,所以后面的示例代码等,都以android为例,IOS平台原理应该相类似。

4.引入sdk包下面的jar包和res文件到自己的工程,如果代码中有多个平台的接入,我个人建议创建一个moudle最好,这样方便管理和维护。

5.以腾讯开放平台给的文档为参考,配置manifest文件和grandle文件(注意:我这里使用的是Android Studio 做为开发工具,如果是Exclipse的话,我就不太清楚了)。

其中我配置的manifest文件的activity如下:

<activity
android:name="com.tencent.tauth.AuthActivity"
android:noHistory="true"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="tencentDO7O1BPDXcCh1ZY3" />
</intent-filter>
</activity>
<activity
android:name="com.tencent.connect.common.AssistActivity"
android:screenOrientation="behind"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="orientation|keyboardHidden">
</activity>


之后需要在manifest中配置appkey,这个值和appid都是来自你在腾讯开放平台上面创建的应用,在应用管理页面去查看。

<meta-data android:name="TA_APPKEY" android:value="DO7O1BPDXcCh1ZY3" />
<meta-data android:name="InstallChannel" android:value="play"/>


最后为你的app配置需要的权限, 这个有你自己决定,示例如下:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />


6.依照API文档,创建并实现回调,在这个过程中一定要注意:

应用调用Andriod_SDK接口时,如果要成功接收到回调,需要在调用接口的Activity的onActivityResult方法中增加如下代码:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Tencent.onActivityResultData(requestCode,resultCode,data,listener);
}


7.下面就可以实现QQ登录、获取userInfo、好友分享等功能了,我的一些代码如下:
//qq登录
mTencent.login(this, "all",listener);
//其中this为activity,all表示获取所有权限,listener为回调的监听器对象
//分享到QQ空间
    public void qq_shareToQzone_onclick()
    {
        int test = 0;
        shareListener = new ShareListener();
        ThreadManager.getMainHandler().post(new Runnable() {
            @Override
            public void run() {
                if (null != MainActivity.mTencent) {
                    //分享类型
                    Bundle params = new Bundle();
                    params.putInt(QzoneShare.SHARE_TO_QZONE_KEY_TYPE,QzoneShare.SHARE_TO_QZONE_TYPE_IMAGE_TEXT);
                    params.putString(QzoneShare.SHARE_TO_QQ_TITLE, "只是一个测试");//必填
                    params.putString(QzoneShare.SHARE_TO_QQ_SUMMARY, "就是一个测试而已");//选填
                    params.putString(QzoneShare.SHARE_TO_QQ_TARGET_URL,  "http://www.qq.com/news/1.html");

                    //必须是一个list
                    ArrayList<String> imageUrls = new ArrayList<String>();
                    imageUrls.add("https://www.baidu.com/img/bd_logo1.png");
                    params.putStringArrayList(QzoneShare.SHARE_TO_QQ_IMAGE_URL,imageUrls);
                    params.putInt(QzoneShare.SHARE_TO_QQ_EXT_INT,  QQShare.SHARE_TO_QQ_FLAG_QZONE_AUTO_OPEN);
                    MainActivity.mTencent.shareToQzone(MainActivity.this, params, shareListener);
                }
            }
        });
        //mTencent.shareToQzone(MainActivity.this, params, shareListener);
    }

    //分享到qq好友
    public void qq_shareToQQFriends_onclick()
    {
        int test = 0;
        final Bundle params = new Bundle();
        params.putInt(QQShare.SHARE_TO_QQ_KEY_TYPE, QQShare.SHARE_TO_QQ_TYPE_DEFAULT);
        params.putString(QQShare.SHARE_TO_QQ_TITLE, "要分享的标题");
        params.putString(QQShare.SHARE_TO_QQ_SUMMARY,  "要分享的摘要");
        params.putString(QQShare.SHARE_TO_QQ_TARGET_URL,  "http://www.qq.com/news/1.html");
        params.putString(QQShare.SHARE_TO_QQ_IMAGE_URL,"http://imgcache.qq.com/qzone/space_item/pre/0/66768.gif");
        params.putString(QQShare.SHARE_TO_QQ_APP_NAME,  "测试应用222222");
        params.putInt(QQShare.SHARE_TO_QQ_EXT_INT, 11);
        mTencent.shareToQQ(MainActivity.this, params, new BaseUiListener());

    }
分享到腾讯微博的目前还存在问题代码就不上传了,其他的好友邀请,送礼物等等都是类似。

特别注意:一定要仔细阅读API文档,这样才能做出你想要的东西^_^
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: