微博、微信原生SDK的封裝總結(jié)

這個月初對社交分享提出了新的要求,不再使用第三方封裝的,要求使用使用微博、微信原生的SDK進行封裝,盡量把數(shù)據(jù)掌握在自己手里。于是開始查看相關(guān)平臺的文檔和demo自己封裝。現(xiàn)對封裝過程進行一個總結(jié),給自己提個醒。

對于授權(quán)和分享,微博和微信都是采用requestresponse的方式,發(fā)送請求,接收響應,而且都是采用代理的形勢。不方便二合一,建議添加block,把微博和微信的授權(quán)和分享都做成回調(diào)的形勢,這樣便于二合一。

微博封裝的總結(jié): appkey和重定向URL必不可少。按照文檔的步驟設(shè)置urlscheme。微博授權(quán)的時候返回這是基本的用戶信息,如果想要獲得具體的用戶信息,還需要調(diào)用

+ (WBHttpRequest *)requestForUserProfile:(NSString *)aUserID 
                         withAccessToken:(NSString *)accessToken 
                      andOtherProperties:(NSDictionary *)otherProperties
                                   queue:(NSOperationQueue *)queue
                   withCompletionHandler:(WBRequestHandler)handler 

才能返回具體的用戶信息。而分享時則有兩種形式,一種是直接分享到微博賬號,一種是喚起微博的客戶端發(fā)送微博的頁面進行微博的發(fā)布。微博SDK提供的發(fā)表一個微博的方法是直接發(fā)送到賬號的。如下:

+ (WBHttpRequest *)requestForShareAStatus:(NSString *)statusText 
                       contatinsAPicture:(WBImageObject *)imageObject 
                             orPictureUrl:(NSString *)url 
                          withAccessToken:(NSString *)accessToken
                       andOtherProperties:(NSDictionary *)otherProperties
                                    queue:(NSOperationQueue *)queue
                    withCompletionHandler:(WBRequestHandler)handler;

喚起微博的客戶端發(fā)送微博的方法,微博SDK沒有直接提供,需要自己打包微博消息,然后調(diào)用發(fā)送接口。如下:

  WBSendMessageToWeiboRequest *weiboRequest = [WBSendMessageToWeiboRequest requestWithMessage:messageObject authInfo:nil access_token:self.accessToken]; 
 [WeiboSDK sendRequest:weiboRequest];

分享到微博的文本內(nèi)容,如果包含鏈接,需要對文本內(nèi)容進行url編碼。這樣鏈接才能正常顯示。

溫馨提示:未登錄的微博,登錄以后就停留在微博客戶端,并沒有出現(xiàn)授權(quán)界面,與微信有所不同。以下兩種情況可在登錄以后出現(xiàn)授權(quán)頁面進行授權(quán):
1、iOS7 的系統(tǒng)的版本可以登錄成功以后接著進行授權(quán)。
2、微博客戶端退出賬號以后后自動彈出登錄頁面,如果把登錄頁面關(guān)閉,再從其他app要求進行微博授權(quán),這個時候登錄完成以后是可以接著授權(quán)的。(我在iOS9.2.1上實驗的結(jié)果,僅供參看)
所以微博的授權(quán)最好在微博賬號登錄以后進行授權(quán),才能保證授權(quán)成功。

微信封裝的總結(jié):微信授權(quán)時的scopestate都需要正確賦值,以免權(quán)限不夠或者授權(quán)不成功。微信授權(quán)獲取個人信息需要三步。

  • 1、向微信發(fā)送授權(quán)請求
  • 2、拿授權(quán)請求返回的code,再去請求openidaccesstoken
  • 3、再拿第二步請求返回的openidaccesstoken去請求個人信息。

溫馨提示:第二步和第三步并無直接的接口,只是提供了url和參數(shù),需要自己包裝。
微信分享的時直接按文檔或者是照著demo來就行了。需要注意的的是各個參數(shù)的大小限制,微信對很多參數(shù)的大小有要求,例如:文本內(nèi)容和圖片的大小等。分享到微信好友時,縮略圖的大小一定不能超過32k,超過的話分享時無法打開微信。因此需要對分享到會話的縮略圖進行壓縮處理,以保證其不超過32k。

以上只是我在進行微博、微信原生SDK接入app時,遇到的一些問題的總結(jié)。如有問題歡迎探討,歡迎微博@藍光95_176.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容

  • 點擊查看原文 Web SDK 開發(fā)手冊 SDK 概述 網(wǎng)易云信 SDK 為 Web 應用提供一個完善的 IM 系統(tǒng)...
    layjoy閱讀 13,934評論 0 15
  • 卷一片桃花,留戀, 訣別塵世緣。 忘憂忘情忘今愁, 斬斷了牽掛,顫抖。 了卻浮云緣, 為何為何為哪番? 轉(zhuǎn)一念,夢...
    LovLe閱讀 278評論 0 2
  • 公子白洛閱讀 79評論 0 0
  • 摩羯男在自己的周圍筑起了一堵磚墻。 他怕羞,但又強壯耐勞。 他快活,但又雄心勃勃。 他就像傳奇中沉著而樸實的牛仔。...
    浮生夢一場閱讀 662評論 0 0
  • 主題是什么? 求助。 事件是什么? 在聽一個音頻。其中內(nèi)容是遇見困難你會求助嗎?你認為求助是強者還是弱者,你會向誰...
    Deing閱讀 205評論 2 2