經常接觸海外用戶的開發者,對Twitter平臺絕不會感到陌生,作爲出海應用和遊戲App必選的社交分享平臺,MobTech開發者服務早在ShareSDK(社會化登錄分享組件)1.0版本就已集成了它。

近期,MobTech開發者服務平臺收到部分用戶反饋,反映Twitter分享前的授權動作索取了過多權限,需要ShareSDK進行優化。到底是哪裏出了問題?

讓我們先從ShareSDK的分享流程說起。

ShareSDK分享流程

不同社交平臺的分享API並不相同,但多數需要在分享前完成授權。ShareSDK同時提供了分享(share)和授權(authorize)兩個API,只是爲了使用方便,分享API背後默認進行了授權檢查,所以開發者日常可忽略授權的API(如下圖):

而Twitter的問題在於默認情況下,它的授權動作索取了太多權限:

所以解決這個問題的第一個辦法,就是不要讓ShareSDK默認完成授權,而是在分享前調用authorize的另一重載,實現對權限裂變的控制。

嘗試1、通過重載的授權方法減少索權

具體的操作如下圖:

執行分享前先通過isAuth方法判斷終端用戶是否已經授權了分享,如未授權,則自行調用authorize的另一種重載方法authorize(String[])來直接指定需要的權限列表進行授權,並在授權成功後調用share方法繼續分享。

因此現在只要查一下Twitter開放平臺的文檔,找到所需的權限就能解決問題——結果很遺憾!Twitter並沒有權限列表的概念,所以這個方案不可行。

嘗試2、修改Twitter App控制檯配置

既然通過代碼配置不可行,根據我們過往的經驗,只能在Twitter的App控制檯內進行配置。

果不其然,在一個不起眼的角落裏,發現了Twitter的權限分級選項,但只有3個:只讀、寫入和讀寫(如下圖):

一般情況下, “只讀”選項肯定申請了最少的權限,切換之後,授權頁面的權限列表少了很多,但完成授權後卻直接影響了分享功能,Twitter提示權限不夠!

這樣看來,分享動作至少要“寫入”權限。在嘗試設置後,儘管可以執行分享工作,但授權頁的權限列表又增多了。

嘗試3、基於操作系統的API進行分享

既然開放平臺的API不能解決這個問題,那隻能尋求操作系統API的幫助了,這裏的實現原理也很簡單(如下圖):

對於安卓系統而言,這個方案操作很簡單。先前ShareSDK已給部分平臺提供了這個功能,而在iOS平臺實現,開發者需要注意不同App提供的API會有差異,甚至還會受到iOS系統和App版本的影響。

最終解決方案

完成了嘗試三的修改,Twitter索權過多的問題確實就被解決。並且和之前一樣,可以通過增加一項配置、無需修改分享的調用代碼,就可直接切換至新的分享方式,特別適用於只需要分享而無需登錄的場景應用

除了Twitter,我們還將這種方案推廣到所有同樣模式的社交平臺中,建議出海開發者更新至最新版本,適用此方案進行分享,解決用戶在分享中產生授權過多的問題

關於ShareSDK

很多移動開發者都有了解,分享涉及的平臺衆多,需要挨個接入可不是件容易活兒。更別說各平臺的配置、更新以及兼容適配性等問題,沒一件省事。項目組的研發、推廣、運營、品牌打造等工作,已足夠焦頭爛額,社交平臺的接入是否有更簡便的方法?

有!用ShareSDK!

ShareSDK僅需一鍵集成,輕鬆解決了以上開發困擾,同時還省去了後續一系列維護平臺的步驟,省時省心又省事。

在信息安全越來越被關注的時代,ShareSDK對每個平臺的安全性非常重視且嚴謹對待,是業內知名且安全係數高的一款社交化分享組件。當前ShareSDK已融入了原生和系統分享,完善的分享方式,讓開發者使用更便捷!

所以,這樣一款分享SDK,接入僅需5分鐘,不香麼?

相關文章