android shareSDK 微博分享案例
  yfmiXREyFUsm 2023年11月02日 116 0

android shareSDK 微博分享案例



ShareSDK

APP_KEY 219b1121fc68




腾讯微博


key 801517904

secret bfba83ae253c8f38dabe22c5fa4093bd






新浪微博


key 3815341537


secret f19fb8f89acc090716de7e3bde2e5f9e


回调页:https://api.weibo.com/oauth2/default.html


包名+keySotre签名:91f05bce6758f1a1e870a4f3fa5f871b



-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------



准备阶段:




使用ShareSDK步骤


1. ShareSDK官网,创建应用 获取Key


2. ShareSDK官网,下载SDK


3. 使ShareSDK的DEMO正常运行


(类库:ShareSDK for Android


  demo:ShareSDK for Android Sample)


4.创建新的项目


5.去各平台注册key


新浪微博:


 a.证书签名需要个人证书导出项目时获取到


MD5 : 91:F0:5B:CE:67:58:F1:A1:E8:70:A4:F3:FA:5F:87:1B


证书格式为小写字母并不含:


91f05bce6758f1a1e870a4f3fa5f871b


 b.

授权回调页:https://api.weibo.com/oauth2/default.html

6.sample里所有的图片以及values拷入当前新的项目: 

此时需要修改 main_activity.xml  and  menu.xml 中跟 @String/ 有关的信息!


7.sample里asset里Sharesdk.xml拷入当前新的项目,并且修改指定内容

RedirectUrl:如果指定授权回调页,就填写回调页,如没有,就填写应用网址


8.需要把sample里mainifest中的权限拷入当前新的项目


9.sample里mainifest中的ShareSDKUIShell,activity注册到当前新的项目中,代码如下:


<activity 
 
android:name="cn.sharesdk.framework.ShareSDKUIShell" 
 
android:theme="@android:style/Theme.Translucent.NoTitleBar"android:configChanges="keyboardHidden|orientation|screenSize"android:windowSoftInputMode="stateHidden|adjustResize" > 
 
 </activity>



 10.拷入需要用到的jar包


 必拷:mframework.jar

 必拷:ShareSDK-Core-2.3.8jar


 分享指定平台:


 ShareSDK-XXX.jar


 11.将onkeyshare包拷贝到当前项目中


分享步骤:


 ***************************

 1.初始化ShareSDK


 ShareSDK.init(this);


 2.设置指定平台


 Platform p=ShareSDK.getPlatform(XXX.NAME);


 3.设置平台监听器


 p.setPlatform


 AcitonListener{


 

1.error

 

2.complete

 

3.cancel

 }


 4.进行授权


 p.rauthorize();


 5.重写平台监听器中的complete


 获取某平台参数对象


 Platform.ShareParams ps=


 new XXX.ShareParams();


 添加要分享的数据


 ps.setText/setImageUrl/set..


 分享


 p.share(ps);



分享案例代码:

1. package com.example.lovesharesdkdemo;  
2.   
3. import java.util.HashMap;  
4.   
5. import android.app.Activity;  
6. import android.os.Bundle;  
7. import android.util.Log;  
8. import android.view.Menu;  
9. import android.view.View;  
10. import android.view.View.OnClickListener;  
11. import android.widget.TextView;  
12. import cn.sharesdk.framework.Platform;  
13. import cn.sharesdk.framework.PlatformActionListener;  
14. import cn.sharesdk.framework.ShareSDK;  
15. import cn.sharesdk.tencent.weibo.TencentWeibo;  
16.   
17. public class MainActivity extends Activity {  
18.   
19.     private Platform platform;  
20.       
21.     private TextView textView;  
22.   
23.     @Override  
24.     protected void onCreate(Bundle savedInstanceState) {  
25.         super.onCreate(savedInstanceState);  
26.         setContentView(R.layout.activity_main);  
27.         //1 初始化SDK  
28.         ShareSDK.initSDK(getApplicationContext());  
29.         //2.设置指定平台  
30. platform = ShareSDK.getPlatform(TencentWeibo.NAME);  
31.         //3 获取组件  注册事件  
32. textView = (TextView) this.findViewById(R.id.buttton);  
33.         textView.setOnClickListener(new OnClickListener() {  
34.               
35.             @Override  
36.             public void onClick(View v) {  
37.                 //TOFO 分享SDK  
38.                 getShareSDK();  
39.             }  
40.   
41.             private void getShareSDK() {  
42.                 //3  给平台添加 listener  
43.                 platform.setPlatformActionListener(new PlatformActionListener() {  
44.                       
45.                     @Override  
46.                     public void onError(Platform arg0, int arg1, Throwable arg2) {  
47.                         // TODO error useful  
48. ---error="+arg2.getLocalizedMessage());  
49.                     }  
50.                       
51.                     @Override  
52. <String, Object> arg2) {  
53.                         // TODO finished useful  
54.                           
55.                         //设置分享的参数:  
56. shareParams = new TencentWeibo.ShareParams();  
57.                           
58.                         shareParams.setText("美女的世界");  
59. u=750616964,1500186643&fm=59");  
60.                           
61.                         // 分享  
62.                         platform.share(shareParams);                  
63.                     }  
64.                       
65.                     @Override  
66.                     public void onCancel(Platform arg0, int arg1) {  
67.                         // TODO cancel  
68.                           
69.                     }  
70.                 });  
71.                   
72.                 //4 授权平台!  异步任务:  
73.                 platform.authorize();  
74.             }  
75.         });  
76.           
77.     }  
78.   
79.     @Override  
80.     public boolean onCreateOptionsMenu(Menu menu) {  
81.         // Inflate the menu; this adds items to the action bar if it is present.  
82.         getMenuInflater().inflate(R.menu.main, menu);  
83.         return true;  
84.     }  
85.   
86. }



androidmainfes.xml

1. <?xml version="1.0" encoding="utf-8"?>  
2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
3. package="com.example.lovesharesdkdemo"  
4. android:versionCode="1"  
5. android:versionName="1.0" >  
6.   
7. <uses-sdk  
8. android:minSdkVersion="14"  
9. android:targetSdkVersion="19" />  
10.       
11. <!--     权限设置 -->  
12. <uses-permission android:name="android.permission.GET_TASKS" />  
13. <uses-permission android:name="android.permission.INTERNET" />  
14. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />  
15. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />  
16. <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />  
17. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />  
18. <uses-permission android:name="android.permission.READ_PHONE_STATE" />  
19. <uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>  
20. <uses-permission android:name="android.permission.GET_ACCOUNTS"/>  
21.       
22.       
23.   
24. <application  
25. android:allowBackup="true"  
26. android:icon="@drawable/ic_launcher"  
27. android:label="@string/app_name"  
28. android:theme="@style/AppTheme" >  
29. <activity  
30. android:name="com.example.lovesharesdkdemo.MainActivity"  
31. android:label="@string/app_name" >  
32. <intent-filter>  
33. <action android:name="android.intent.action.MAIN" />  
34.   
35. <category android:name="android.intent.category.LAUNCHER" />  
36. </intent-filter>  
37. </activity>  
38.           
39. <!--  SdkShare frameWork -->  
40. <activity  
41. android:name="cn.sharesdk.framework.ShareSDKUIShell"  
42. android:theme="@android:style/Theme.Translucent.NoTitleBar"  
43. android:configChanges="keyboardHidden|orientation|screenSize"  
44. android:windowSoftInputMode="stateHidden|adjustResize" >  
45. </activity>  
46.           
47.           
48. </application>  
49.   
50. </manifest>


ShareSDK.xml



1. <?xml version="1.0" encoding="utf-8"?>  
2. <DevInfor>  
3.     <!--  
4.         说明:  
5.           
6.         1、表格中的第一项  
7. <ShareSDK   
8. AppKey="api20" />  
9.         是必须的,其中的AppKey是您在ShareSDK上注册的开发者帐号的AppKey  
10.           
11.         2、所有集成到您项目的平台都应该为其在表格中填写相对应的开发者信息,以新浪微博为例:  
12. <SinaWeibo  
13. Id="1"  
14. SortId="1"  
15. AppKey="568898243"  
16. AppSecret="38a4f8204cc784f81f9f0daaf31e02e3"  
17. RedirectUrl="http://www.sharesdk.cn"  
18. Enable="true" />  
19.         其中的SortId是此平台在分享列表中的位置,由开发者自行定义,可以是任何整型数字,数值越大  
20.         越靠后AppKey、AppSecret和RedirectUrl是您在新浪微博上注册开发者信息和应用后得到的信息  
21.         Id是一个保留的识别符,整型,ShareSDK不使用此字段,供您在自己的项目中当作平台的识别符。  
22.         Enable字段表示此平台是否有效,布尔值,默认为true,如果Enable为false,即便平台的jar包  
23.         已经添加到应用中,平台实例依然不可获取。  
24.           
25.         各个平台注册应用信息的地址如下:  
26.             新浪微博                 http://open.weibo.com  
27.             腾讯微博                 http://dev.t.qq.com  
28.             QQ空间                      http://connect.qq.com/intro/login/  
29.             微信好友                 http://open.weixin.qq.com  
30.             Facebook      https://developers.facebook.com  
31.             Twitter       https://dev.twitter.com  
32.             人人网                      http://dev.renren.com  
33.             开心网                      http://open.kaixin001.com  
34.             搜狐微博                 http://open.t.sohu.com  
35.             网易微博                 http://open.t.163.com  
36.             豆瓣                           http://developers.douban.com  
37.               
38.             有道云笔记            http://note.youdao.com/open/developguide.html#app  
39.             印象笔记                 https://dev.evernote.com/  
40. newapp=  
41. FourSquare    https://developer.foursquare.com/  
42.             搜狐随身看            https://open.sohu.com/  
43.             Flickr        http://www.flickr.com/services/  
44.             Pinterest     http://developers.pinterest.com/  
45.             Tumblr        http://www.tumblr.com/developers  
46.             Dropbox       https://www.dropbox.com/developers  
47.             Instagram     http://instagram.com/developer#  
48.             VKontakte     http://vk.com/dev  
49.             易信好友            http://open.yixin.im/  
50.             明道      http://open.mingdao.com/  
51.             Line    http://media.line.me/zh-hant/  
52. >  
53.       
54. <!-- 修改成你在sharesdk后台注册的应用的appkey"-->  
55. <ShareSDK   
56. AppKey = "3500df6f55df"/>   
57.       
58. <!-- ShareByAppClient标识是否使用微博客户端分享,默认是false -->  
59. <SinaWeibo  
60. Id="1"  
61. SortId="1"  
62. AppKey="568898243"  
63. AppSecret="38a4f8204cc784f81f9f0daaf31e02e3"  
64. RedirectUrl="http://www.sharesdk.cn"  
65. ShareByAppClient="false"  
66. Enable="true" />  
67.   
68. <!--   腾讯微博 -->  
69. <TencentWeibo  
70. Id="2"   
71. SortId="2"  
72. AppKey="801545336"  
73. AppSecret="b3def3a6ff684bee7de4e49d7884c0b3"  
74. RedirectUri="http://www.baidu.com"  
75. Enable="true" />  
76.   
77. <!-- ShareByAppClient标识是否使用微博客户端分享,默认是false -->  
78. <QZone  
79. Id="3"  
80. SortId="3"  
81. AppId="100371282"  
82. AppKey="aed9b0303e3ed1e27bae87c33761161d"  
83. ShareByAppClient="true"  
84. Enable="true" />  
85.       
86.     <!--   
87.         Wechat微信和WechatMoments微信朋友圈的appid是一样的;  
88.       
89.                        注意:开发者不能用我们这两个平台的appid,否则分享不了  
90.       
91.           微信测试的时候,微信测试需要先签名打包出apk,  
92.         sample测试微信,要先签名打包,keystore在sample项目中,密码123456  
93.           
94.         BypassApproval是绕过审核的标记,设置为true后AppId将被忽略,故不经过  
95.         审核的应用也可以执行分享,但是仅限于分享文字和图片,不能分享其他类型,  
96.         默认值为false。此外,微信收藏不支持此字段。  
97. >  
98. <Wechat  
99. Id="4"  
100. SortId="4"  
101. AppId="wx4868b35061f87885"  
102. AppSecret="64020361b8ec4c99936c0e3999a9f249"  
103. BypassApproval="false"  
104. Enable="true" />  
105.       
106. <WechatMoments  
107. Id="5"  
108. SortId="5"  
109. AppId="wx4868b35061f87885"  
110. AppSecret="64020361b8ec4c99936c0e3999a9f249"  
111. BypassApproval="true"  
112. Enable="true" />  
113.           
114. <WechatFavorite  
115. Id="6"  
116. SortId="6"  
117. AppId="wx4868b35061f87885"  
118. AppSecret="64020361b8ec4c99936c0e3999a9f249"  
119. Enable="true" />  
120.       
121. <!-- ShareByAppClient标识是否使用微博客户端分享,默认是false -->  
122. <QQ  
123. Id="7"  
124. SortId="7"  
125. AppId="100371282"  
126. AppKey="aed9b0303e3ed1e27bae87c33761161d"  
127. ShareByAppClient="true"  
128. Enable="true" />  
129.       
130. <Facebook  
131. Id="8"  
132. SortId="8"  
133. ConsumerKey="107704292745179"  
134. ConsumerSecret="38053202e1a5fe26c80c753071f0b573"  
135. Enable="true" />  
136.   
137. <Twitter  
138. Id="9"  
139. SortId="9"  
140. ConsumerKey="mnTGqtXk0TYMXYTN7qUxg"  
141. ConsumerSecret="ROkFqr8c3m1HXqS3rm3TJ0WkAJuwBOSaWhPbZ9Ojuc"  
142. CallbackUrl="http://www.sharesdk.cn"  
143. Enable="true" />  
144.   
145. <Renren  
146. Id="10"  
147. SortId="10"  
148. AppId="226427"  
149. ApiKey="fc5b8aed373c4c27a05b712acba0f8c3"  
150. SecretKey="f29df781abdd4f49beca5a2194676ca4"  
151. Enable="true" />  
152.       
153. <KaiXin  
154. Id="11"  
155. SortId="11"  
156. AppKey="358443394194887cee81ff5890870c7c"  
157. AppSecret="da32179d859c016169f66d90b6db2a23"  
158. RedirectUri="http://www.sharesdk.cn"  
159. Enable="true" />  
160.       
161. <Email  
162. Id="12"   
163. SortId="12"  
164. Enable="true" />  
165.       
166. <ShortMessage  
167. Id="13"   
168. SortId="13"  
169. Enable="true" />  
170.       
171. <SohuMicroBlog  
172. Id="14"  
173. SortId="14"  
174. ApiKey="q70QBQM9T0COxzYpGLj9"  
175. ConsumerKey="q70QBQM9T0COxzYpGLj9"  
176. ConsumerSecret="XXYrx%QXbS!uA^m2$8TaD4T1HQoRPUH0gaG2BgBd"  
177. CallbackUrl="http://www.sharesdk.cn"  
178. Enable="true" />  
179.       
180. <NetEaseMicroBlog  
181. Id="15"  
182. SortId="15"  
183. ConsumerKey="T5EI7BXe13vfyDuy"  
184. ConsumerSecret="gZxwyNOvjFYpxwwlnuizHRRtBRZ2lV1j"  
185. RedirectUri="http://www.shareSDK.cn"  
186. Enable="true" />  
187.       
188. <Douban  
189. Id="16"  
190. SortId="16"  
191. ApiKey="02e2cbe5ca06de5908a863b15e149b0b"  
192. Secret="9f1e7b4f71304f2f"  
193. RedirectUri="http://www.sharesdk.cn"  
194. Enable="true" />  
195.       
196. <YouDao  
197. Id="17"  
198. SortId="17"  
199. HostType="product"  
200. ConsumerKey="dcde25dca105bcc36884ed4534dab940"  
201. ConsumerSecret="d98217b4020e7f1874263795f44838fe"  
202. RedirectUri="http://www.sharesdk.cn"  
203. Enable="true" />  
204.           
205. <SohuSuishenkan  
206. Id="18"  
207. SortId="18"  
208. AppKey="e16680a815134504b746c86e08a19db0"  
209. AppSecret="b8eec53707c3976efc91614dd16ef81c"  
210. RedirectUri="http://sharesdk.cn"  
211. Enable="true" />  
212.           
213.     <!--   
214.         在中国大陆,印象笔记有两个服务器,一个是沙箱(sandbox),一个是生产服务器(china)。  
215.         一般你注册应用,它会先让你使用sandbox,当你完成测试以后,可以到  
216.         http://dev.yinxiang.com/support/上激活你的ConsumerKey,激活成功后,修改HostType  
217.         为china就好了。至于如果您申请的是国际版的印象笔记(Evernote),则其生产服务器类型为  
218.         “product”。  
219.           
220.         如果目标设备上已经安装了印象笔记客户端,ShareSDK允许应用调用本地API来完成分享,但  
221.         是需要将应用信息中的“ShareByAppClient”设置为true,此字段默认值为false。  
222. >  
223. <Evernote  
224. Id="19"  
225. SortId="19"  
226. HostType="sandbox"  
227. ConsumerKey="sharesdk-7807"  
228. ConsumerSecret="d05bf86993836004"  
229. ShareByAppClient="false"  
230. Enable="true" />  
231.       
232. <LinkedIn  
233. Id="20"  
234. SortId="20"  
235. ApiKey="ejo5ibkye3vo"  
236. SecretKey="cC7B2jpxITqPLZ5M"   
237. RedirectUrl="http://sharesdk.cn"  
238. Enable="true" />  
239.       
240. <GooglePlus  
241. Id="21"  
242. SortId="21"  
243. Enable="true" />  
244.        
245. <FourSquare  
246. Id="22"  
247. SortId="22"  
248. ClientID="G0ZI20FM30SJAJTX2RIBGD05QV1NE2KVIM2SPXML2XUJNXEU"  
249. ClientSecret="3XHQNSMMHIFBYOLWEPONNV4DOTCDBQH0AEMVGCBG0MZ32XNU"  
250. RedirectUrl="http://www.sharesdk.cn"  
251. Enable="true" />  
252.           
253. <Pinterest  
254. Id="23"  
255. SortId="23"  
256. ClientId="1432928"  
257. Enable="true" />  
258.        
259. <Flickr  
260. Id="24"  
261. SortId="24"  
262. ApiKey="33d833ee6b6fca49943363282dd313dd"  
263. ApiSecret="3a2c5b42a8fbb8bb"  
264. RedirectUri="http://www.sharesdk.cn"  
265. Enable="true" />  
266.           
267. <Tumblr  
268. Id="25"  
269. SortId="25"  
270. OAuthConsumerKey="2QUXqO9fcgGdtGG1FcvML6ZunIQzAEL8xY6hIaxdJnDti2DYwM"  
271. SecretKey="3Rt0sPFj7u2g39mEVB3IBpOzKnM3JnTtxX2bao2JKk4VV1gtNo"  
272. CallbackUrl="http://sharesdk.cn"  
273. Enable="true" />  
274.    
275. <Dropbox  
276. Id="26"  
277. SortId="26"  
278. AppKey="7janx53ilz11gbs"  
279. AppSecret="c1hpx5fz6tzkm32"  
280. Enable="true" />  
281.           
282. <VKontakte   
283. Id="27"  
284. SortId="27"  
285. ApplicationId="3921561"  
286. Enable="true" />  
287.           
288. <Instagram   
289. Id="28"  
290. SortId="28"  
291. ClientId="ff68e3216b4f4f989121aa1c2962d058"  
292. ClientSecret="1b2e82f110264869b3505c3fe34e31a1"  
293. RedirectUri="http://sharesdk.cn"  
294. Enable="true" />  
295.       
296.     <!--   
297.         Yixin易信和YixinMoments易信朋友圈的appid是一样的;  
298.       
299.                        注意:开发者不能用我们这两个平台的appid,否则分享不了  
300.       
301.          易信测试的时候需要先签名打包出apk,  
302.         sample测试易信,要先签名打包,keystore在sample项目中,密码123456  
303.           
304.         BypassApproval是绕过审核的标记,设置为true后AppId将被忽略,故不经过  
305.         审核的应用也可以执行分享,但是仅限于分享文字或图片,不能分享其他类型,  
306.         默认值为false。  
307. >  
308. <Yixin   
309. Id="29"  
310. SortId="29"  
311. AppId="yx0d9a9f9088ea44d78680f3274da1765f"  
312. BypassApproval="true"  
313. Enable="true" />  
314.       
315. <YixinMoments  
316. Id="30"  
317. SortId="30"  
318. AppId="yx0d9a9f9088ea44d78680f3274da1765f"  
319. BypassApproval="true"  
320. Enable="true" />  
321.   
322. <Mingdao  
323. Id="31"  
324. SortId="31"  
325. AppKey="EEEE9578D1D431D3215D8C21BF5357E3"  
326. AppSecret="5EDE59F37B3EFA8F65EEFB9976A4E933"  
327. RedirectUri="http://sharesdk.cn"  
328. Enable="true" />  
329.       
330. <Line  
331. Id="32"  
332. SortId="32"  
333. Enable="true" />  
334.       
335. <KakaoTalk  
336. Id="33"  
337. SortId="33"  
338. Enable="true" />  
339.       
340. <KakaoStory  
341. Id="34"  
342. SortId="34"  
343. Enable="true" />  
344.       
345. </DevInfor>



需要的包:如图:


android shareSDK 微博分享案例_android



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  anLrwkgbyYZS   2023年12月30日   32   0   0 ideciciMaxideMax
yfmiXREyFUsm