使用facebook和twitter進行分享經驗總結

鳳凰涅槃,浴火重生。
在傳說當中,鳳凰是人世間幸福的使者,每五百年,它就要揹負着積累於在人間的所有痛苦和恩怨情仇,投身於熊熊烈火中自焚,以生命和美麗的終結換取人世的祥和與幸福。同樣在肉體經受了巨大的痛苦和輪迴後它們才能得以重生。垂死的鳳凰投入火中,在火中浴火新生,其羽更豐,其音更清,其神更髓,成爲了美麗,輝煌,永生的火鳳凰。
鳳凰涅槃的佛教故事來源於印度。據印度史詩《羅摩衍那》記載:保護神毗溼奴點燃熊熊烈焰,垂死的鳳凰投入火中,燃爲灰燼,再從灰燼重生,成爲美麗輝煌永生的火鳳凰,這就是鳳凰涅槃的佛教來源。涅槃的意思是火的息滅或風的吹散狀態,被人寓意寂滅、解脫、不生。
還有一個美麗傳說,傳說在古老的天方國,有一對神鳥,雄爲鳳,雌爲凰。滿五百歲後,集香木自焚,復從死灰中更生,從此鮮美異常,不再死。雄奇的大黑山上,全綵激光燈映射出長達數公里的時光隧道和漫天的雲彩,高達十米的烈焰從山頂噴薄而出,飛瀑飛流直下,在水與火的交融中,鳳在歌鳴,凰在和絃,演繹了一個流傳千古的美麗傳說。
此典故寓意不畏痛苦、義無反顧、不斷追求、提升自我的執着精神。

之前我在負責公司的一款海外產品時,需要進行facebook和twitter分享,在完成這兩項功能後,進行了總結,現在拿出來分享給大家,希望大家喜歡。注意,以下所有網址都需要連接VPN。

Facebook分享

1、第一步到https://www.facebook.com/網站註冊自己的賬號和密碼,一般有gmail的郵箱即可註冊。

2、第二步到facebook的開發網站獲取一些分享方面的開發信息

位置爲https://developers.facebook.com
分享方面的文檔在:https://developers.facebook.com/docs/android/share?locale=zh_CN

3、第三步,需要在後臺進行項目註冊,這個工作一般由服務端來做。

例如,我們的產品的地址爲,https://www.facebook.com/pages/xxxxx/666666666666。到其中去註冊添加分享項目的信息。客戶端需要提供一些信息,比如launcher的類名稱全拼。
如,我們的項目爲com.shere.xxxx.ui350.MainSplashActivity,正式版本簽名的key hash值等。

4、編譯需要鏈接源代碼項目FacebookSDK,這個是其官方提供的SDK。

並且需要在混淆文件添加如下代碼,來排除混淆。

-libraryjars ../FacebookSDK/libs/bolts-android-1.1.2.jar
-keep class com.facebook.** { *; }
-keep interface com.facebook.** { *; }
-keep public class * extends com.facebook.**

5、分享分兩種方式,客戶端分享和網頁分享。具體代碼在GetCoinActivity.java中。

通過返回值,例如如下代碼

canPresentShareDialog = FacebookDialog.canPresentShareDialog(this,FacebookDialog.ShareDialogFeature.SHARE_DIALOG);

中的canPresentShareDialog來判斷,如果爲true表示客戶端分享,false爲網頁分享。具體流程可以參考代碼,都在代碼GetCoinActivity.java中。

6、分享後有如下回調

private FacebookDialog.Callback dialogCallback = new FacebookDialog.Callback(),

失敗會在onError函數中處理,成功會在onComplete中處理。

7、分享需要添加從服務器端申請的應用id。

有兩個地方需要添加。

其一,字符串中添加如下代碼,

    <string name="app_id">11111111111111111</string>

其二、manifest.xml中添加,如下代碼,

        <!-- facebook -->
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/app_id" />

<activity
android:name="com.facebook.LoginActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />

<provider
android:name="com.facebook.NativeAppCallContentProvider" android:authorities="com.facebook.app.NativeAppCallContentProvider11111111111111111"
android:exported="true" />

注意其中標紅的數值和字符串資源中定義的app_id保持一致。

8、分享facebook需要登錄,目前只要登錄一次即可,未實現退出登錄。

再次分享可以直接進行分享,無需登錄。

9、facebook和twitter分享都需要一個Logo地址。

形式如下所示,

public static final String LOGO_URL = http://update.xxx.xxx.cn/androidup/xxxx/icon.png

,在分享後可以看到分享應用的Logo圖標。這個需要服務端來提供。

Twitter分享

1、登錄網站https://twitter.com/,註冊賬號。

2、後臺進入網站https://dev.twitter.com,註冊後臺信息,一般需要服務端人員進行信息註冊。

客戶端協助提供一些信息。

3、twitter沒有官方的分享指導文檔,但有不同版本的sdk。

分享方面全是一些個人做的開源項目。我參考的是其中的一個,也是較穩定的一個。
需要集成如下.jar。

    signpost-commonshttp4-1.2.1.1.jar
signpost-core-1.2.1.1.jar
signpost-jetty6-1.2.1.1.jar
twitter4j-core-4.0.2.jar

4、混淆文件需要排除twitter相關的類,在混淆中添加如下代碼,

    -keep class twitter4j.** { *; }
-keep interface twitter4j.** { *; }
-keep public class * extends twitter4j.**
-keep class oauth.signpost.**
{ *; }
-keep interface oauth.signpost.** { *; }
-keep public class * extends oauth.signpost.**
-keep class oauth.signpost.commonshttp.**
{ *; }
-keep class oauth.signpost.jetty.** { *; }

5、twitter分享需要Consumer Key和Consumer Secret,這兩個值由服務端在twitter官網註冊應用信息時生成。

類似於,

    //twitter的Consumer Key
public static final String twitter_consumer_key = "AAAAABBBBBBBCCCCCCDDDD";
//twitter的Consumer Secret
public static final String twitter_secret_key = "OIubPNuoTzoe9FMFJ5jvEW1TpvcG5CRQmsdfdfadfafeae";

這樣的格式。
如我們的項目是在Constants.java中進行定義的。

6、twitter只有接口分享,沒有客戶端分享。

在接口的基礎上,我們自己加了一個分享界面TwitterShareContentDialog.java。用戶可以修改分享的內容。具體流程可以參看代碼。

7、分享另外需要幾個輔助文件,分別爲,TwitterApp.java,TwitterDialog.java,TwitterSession.java都開源項目中提供的。

以上就是facebook和twitter如何進行分享的方法,按照如上方法可以構建對應的分享功能,如有任何疑問也歡迎諮詢。

這裏寫圖片描述
本公衆號將以推送Android各種技術乾貨或碎片化知識,以及整理老司機日常工作中踩過的坑涉及到的經驗知識爲主,也會不定期將正在學習使用的新技術總結出來進行分享。每天一點乾貨小知識把你的碎片時間充分利用起來。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章