[img]http://dl2.iteye.com/upload/attachment/0109/4643/1c8f241f-54f4-3c3c-aeeb-e6f5daac9c72.png[/img]

一直以来很多人都在询问同一个问题“微信怎么不能用”。其实这个问题我老早就写在SDK说明文档里面(就是SDK解压目录下的PDF文件)了,可是大家都不看。考虑到文档很长搜索麻烦,我现在统一整个集成步骤,写下这个文档。

首先你须要获取Share SDK,这话比较多余,所以就跳过了——你需要到微信开放平台上注册你的应用信息。

[img]http://dl2.iteye.com/upload/attachment/0109/4635/0a0e125b-a258-3c51-8af2-06a020984b1d.png[/img]

进到微信的官网以后,点击右上角的“开发者”,然后登录你或者你们公司的微信帐号。

登录帐号以后,点击“登记我的应用”,创建应用信息。创建应用的时候一定要填写正确的应用名称,这个名称以后用来显示在微信消息的“应用表情”里面。
[img]http://dl2.iteye.com/upload/attachment/0109/4633/32b31bf8-7216-3bd6-bb1a-a445615d98d5.png[/img]
然后填写应用信息。由于微信在最近调整了Android平台的调试策略,导致Android平台的应用只有通过了审核才能调用成功调用微信客户端进行分享,因此请按微信页面要求,填写完整的应用信息,以便提交审核。

[img]http://dl2.iteye.com/upload/attachment/0109/4637/179cd9a9-676a-3213-9b36-76aa32a91398.png[/img]

完成上述步骤以后,基本上也就算完成应用登录了,但是请注意在最后的地方选择“移动应用”,因为我们创建的应用是一个移动应用,不是网站应用——事实上,微信还没开放网站应用登记。

[img]http://dl2.iteye.com/upload/attachment/0109/4639/0cb63a9b-4f9a-3600-9327-2c36dd8faf62.png[/img]
大部分开发者认为到此应用就算创建了,可以开始集成Share SDK进行开发,但这是严重的误解,完成这个,甚至还不到集成工作的五分之一。

完成应用登记以后,会直接看到一个“移动应用”的页面,页面中间有移动平台信息配置的内容,请至少勾选其中的“Android平台应用”:

[img]http://dl2.iteye.com/upload/attachment/0109/4641/7e2fa7d1-02fe-366a-a3b4-5a7a3ac3df4c.png[/img]
勾选以后会展开一个Android信息内容,请务必详细填写里面的东西。
因为很多人会填错这些信息,所以我详细说一下这三个框的内容要求。
首先是下载地址。微信的描述是很矛盾的,一方面要求下载地址,一方面不能填写真正的下载地址,很多人不知道怎么填。其实很简单的,如果你的应用已经发布,不管是什么应用市场,填写你的应用在这个电子商场上面的对应页面地址就行,如果你们只是在自己官网发布,那就下上官网这个应用的下载页面地址就可以。微信不允许连接携带“apk”后缀,因此直接下载地址是不可以的。
其次是应用签名。这个签名其实很容易产生,完全不需要微信的那个工具。但是产生的流程我不想重复了,所以直接复制SDK说明文档里面的内容:
(1)使用微信提供的签名计算工具,来签名:
如果您希望通过这个方法来计算签名,则需要下载微信的签名计算工具。此处需要注意的是下载回来的文件一定是“apk”的,如果您下载回来的文件是zip或者后缀名,请修改其后缀名为“apk”,并复制到您的手机上安装。
然后为您的应用导出一个签过名的apk。请注意,这个签名应该是您将来发布应用时的签名,也就是所谓的“正式包签名”。这里需要解释一下,微信并不要求具体使用的签名文件的性质,但是修改签名经常会导致问题,所以为了避免不必要的麻烦,Share SDK强烈建议您使用正式包的签名。
安装导出的apk文件,然后运行微信的签名计算工具。并在其中输入您应用的包名,微信会自动计算您应用所签keystore的MD5:

转至微信开放平台,将计算好的结果填写到其中并保存。
(2)利用Eclipse导出签名时显示的签名MD5值:
利用此方法,要求您下载最新版本的Eclipse Android开发插件(ADT)。确保此条件后,右键您的项目,选择“Android Tools”—“Export Signed Application Package…”:

此时会弹出一个导出签名apk的窗口,输入您应用正式签名和密码以后,会在导出页面中,显示您签名的MD5值。将其复制出来,调整为小写,并去除多余的风格符。转至微信开放平台,将计算好的结果填写到其中并保存即可。
[img]http://dl2.iteye.com/upload/attachment/0109/4647/91d04a9e-a448-3954-8d46-554268027b06.png[/img]

(3)Linux(Ubuntu)下,利用Shell直接计算:
如果您使用Ubuntu操作系统,可以直接利用下面的Shell命令计算出签名文件的MD5值:

keytool -exportcert -alias <keystore别名> -keypass <别名密码> -keystore <keystore路径> -storepass <keystore密码> | md5sum
如:

keytool -exportcert -alias demokey.keystore -keypass 123456 -keystore demokey.keystore -storepass 123456 | md5sum
其实出如下:

[img]http://dl2.iteye.com/upload/attachment/0109/4651/4a8a068e-eee6-3e3d-a644-ff99d9e3710b.png[/img]
将其复制出来,转至微信开放平台,将计算好的结果填写到其中并保存即可。
上面的方法,任选其一都可以计算出实际的签名文件md5值出来。其实你也可以尝试自己写代码计算,这个在说明文档中有类似的方法——facebook sso功能的签名base64代码。这个应该就是微信那个蹩脚的工具的计算方法,不过他们没有base64,也不是SHA,而是简单MD5而已。
最后是包名,这个应该不用多说。Android程序的唯一识别符就是包名,写在“AndroidManifest.xml”中。

[img]http://dl2.iteye.com/upload/attachment/0109/4653/2f92ea64-5214-32e5-a5c2-b5ccf3fdb0f7.png[/img]
完成上述三项的填写,然后保存,保存完毕以后,微信会提醒你:

[img]http://dl2.iteye.com/upload/attachment/0109/4655/2f9c127c-7a0d-3b47-9854-69eab23e6247.png[/img]
滑到页面底部,提交审核。审核一般需要3天以上的时间,如果审核通过,就可以开始集成的操作,如果不通过,最好修改应用信息。按照微信的说法,android平台不通过审核,是不能调用客户端来操作的:

[img]http://dl2.iteye.com/upload/attachment/0109/4659/1212046c-890b-360d-a087-0074e027eea8.png[/img]

审核通过以后,和其他平台的集成操作一样:如果需要快捷分享,引用快捷分享的项目,如果不需要,则直接引用mainlibs。对于Unity3D等只能直接引用jar的项目,可以复制mianlibs的jar到你的项目中,同时复制mainlibs的资源文件过去。这些文件是授权时需要的资源文件。接下来参考Sample项目的WechatPage里面的配置,如果需要分享文字,其ShareParams.shareType设置为SHARE_TEXT,如果仅仅只需要图片,设置为SHARE_IMAGE,在微信的两个平台中,SHARE_IMAGE和SHARE_IMAGE_TEXT是同义的,都只能分享图片(请注意,此处说的“只能分享图片”,指的是“分享的时候,你的应用只能设置分享内容中的图片”,因为事实上,微信总是会弹出一个框,让用户输入文字的,因此图文分享并不是不可以,只是分享中的文字你的应用无法设置)。微信并没有直接提供“图文分享”,所以为了模拟图文分享,请使用“SHARE_WEBPAGE”,但别忘记这个类型的图片是thumbPath,而且url字段是必须的。

编写完代码以后,不要直接run。微信注册的时候,如果你的keystore文件不是你用来调试的debugkey,是不能直接run的(事实上android程序都需要签名,平时eclipse run的时候似乎没有签名,其实adt已经用默认的debugkey给你的apk签名了,因此如果你注册应用信息时填写的keystore的md5是你的debugkey的md5,你还是可以直接run的)。因此请在测试的时候导出一个已经使用你上面注册时填写的keystore签过名的apk,然后通过adb命令行或者直接利用“豌豆荚”之类的工具安装到你的测试手机里面,这样子才可以测试。如果签名错误,微信会拒绝分享。

总的来说,一般开发者过来问:“微信为什么不能用”,我会回问他:“请问你在微信开放平台上注册了你的应用信息、包名和签名了吗?”如果他还没有,我会请他去参考SDK说明文档看第一章“签名”部分的说明。如果他已经注册了,那么(我默认他真的没填错MD5值),那么我会问:“那么你的应用已经提交审核了吗?”其实很多人会卡在第二个问题。以前微信是允许未通过审核的应用作测试的,但是现在它不允许了,所以一定要通过审核。如果第二个问题你也给了肯定,那么思考一下:“你是不是很惯性地run了?”请通过“Android Tools”—“Export Signed Application Package…”来导出一个签名的包。如果你还是给了肯定的答复,那就是麻烦的情况了:你最好检查一下你的签名值是否写错了?如果怎么检查都没有错,那是否你调用接口的时候参数传递错误了?参数是否错误,可以通过API文档或者错误的事件回调得到提醒。但是如果参数也没有错,日志也卡在微信那边了,那就应该和微信方面取得联系了。分享的时候,他们的客户端会检查你的应用,如果微信客户端认为你的应用有错误——不管是什么错误——它就会拒绝分享了,而且不给回应,不输出日志。即便是我,也不能知道原因。

ShareSDK 微信及其朋友圈集成步骤相关推荐

  1. 一键清空朋友圈软件_微信清理朋友圈app下载-微信清理朋友圈下载v1.8.0 安卓版-西西软件下载...

    微信清理朋友圈app一款强大的微信清理工具,当你想要重置自己的微信号并删除所有的内容之时,又觉得一条条删太麻烦了,就可以用到这款神器工具,可以帮助你一键删除掉朋友圈内的所有内容,帮助你轻松的重置微信号 ...

  2. android中设置lmargin简书,超详细React Native实现微信好友/朋友圈分享功能-Android/iOS双平台通用...

    (一)前言 本文主要会涉及到以下内容: 微信开发者应用申请审核 安装配置微信分享库 微信好友/朋友圈功能实现 (二)应用申请审核 首先大家需要去微信开发平台去注册账号并且创建一个移动应用.(地址:ht ...

  3. 微信回应朋友圈表情包评论关闭:灰度测试;Twitter漏洞波及1700万用户;Ruby 2.7.0发布 | 极客头条...

    整理 | 郭芮 快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注 ...

  4. 后台弹出界面权限 绕过_教您如何发微信「朋友圈」,设置访问权限

    引言 我们经常在微信的朋友圈中看到朋友们分享的动态,我们也可以将我们的美好瞬间记录在朋友圈,与亲朋好友共同分享. 发送朋友圈的步骤 1.打开微信,点击底部的[发现],进入界面后点击[朋友圈],可以看到 ...

  5. java微信分享朋友圈_java怎么实现微信分享到朋友圈功能

    展开全部 申请应用 AppKey 申请方法:访问友推网站后台,登录后进入应用列表,添加需要集成友推组件的 App,如下636f7079323131333532363134313032313635333 ...

  6. 微信与朋友圈后台架构

    微信朋友圈技术之道:三个人的后台团队与每日十亿的发布量 视屏讲解 概述 截止到2015年7月,微信每月活跃用户约5.49亿,朋友圈每天的发表量(包括赞和评论)超过10亿,浏览量超过100亿.得益于4G ...

  7. 企业微信和个人微信在朋友圈上有何区别?

    企业微信的朋友圈和个人微信的朋友圈有何区别?各有什么优势呢?企业微信的朋友圈怎么运营才能获得更好的效果呢? 随着腾讯在企业微信的不断发力,企业微信中也提供了朋友圈功能,可以帮助我们进行企业微信营销,那 ...

  8. 使用GridView实现仿微信发朋友圈添加图片,点击预览、删除图片

    最近在项目中有一个用户反馈的功能中要上传图片,和微信发朋友圈添加图片的功能其实有点类似,所以我想着用GridView来实现这个功能,整个过程也很简单,画不多说,详细步骤见下: 1.先来看MainAct ...

  9. 【转】微信与朋友圈后台架构

    微信朋友圈技术之道:三个人的后台团队与每日十亿的发布量 视屏讲解 概述 截止到2015年7月,微信每月活跃用户约5.49亿,朋友圈每天的发表量(包括赞和评论)超过10亿,浏览量超过100亿.得益于4G ...

最新文章

  1. 现场丨李开复、李飞飞等大佬集聚达沃斯,解读中国的AI优势
  2. 奇迹觉醒服务器找不到,奇迹MU觉醒与服务器断开连接 原因及解决办法
  3. NLP深度学习:PyTorch文本分类
  4. Linux内核线程kernel thread详解--Linux进程的管理与调度
  5. python判断英文字母_python判断字符串中是否含有英文 | 个人学习笔记记录
  6. Android fillViewPort属性用法
  7. gpt linux双系统安装win7系统分区格式化,如何在GPT分区格式上安装win7 64位系统
  8. 联通发送wap push备忘录
  9. wifi app 服务器无响应,无法连接到 App Store 要怎么办?
  10. Matlab R2010b 安装使用教程 【详细】
  11. mysql捕获1300的错误_pt-osc 变更时遇到 “MySQL error 1300” 报错问题解决
  12. Pytorch中设置哪些随机数种子,才能保证实验可重复
  13. ISO14229 理解(一)
  14. android涟漪动画,如何添加涟漪效果并在android中的按钮上有自定义背景?
  15. 工业机器人介绍及机器人学概述
  16. word插入图片的同时自动插入图片名称
  17. 图像处理之仿油画效果
  18. cmd命令:返回上一层目录/进入电脑 D盘根目录/进入指定目录
  19. “平衡小车之家”家的STM32F103最小系统源代码分享
  20. 半导体TEC高低温实验设备-风冷温控平台

热门文章

  1. 法律常识(一)婚姻法全文
  2. BGP在数据中心的应用2——BGP如何适应数据中心网络
  3. 《程序员》 -- 说说软件专利
  4. “新角度”学习微积分:阿基米德是如何称出球的体积的?
  5. 10, excel vba 修改单元格的颜色
  6. 计算机集群英语怎么说,cluster是什么意思_cluster的翻译_音标_读音_用法_例句_爱词霸在线词典...
  7. [Unity Mirror] 作弊与反作弊
  8. 数字化如何助力品牌发展,高端茶品牌竹叶青告诉你
  9. 20200725 error Cyclic behavior during switching.
  10. k近邻算法python解读_Python3《机器学习实战》学习笔记(一):k-近邻算法(史诗级干货长文)...