Android - Facebook Like Button

摘要:Android - Facebook Like Button

2014.10.3 出現了一篇

Mobile Like Button now Available to Everyone

https://developers.facebook.com/blog/post/2014/10/02/mobilelike/

 

然後就開始研究這門技術。

一開始我還以為,跟Web一樣,任一個url都會幫你記錄like,按讚數,誰按過讚之類的。

 

結果不如我以為的。

在facebook natvie like button 有其限制

 

終於看懂裡面的一段話

People using a mobile app can directly Like the app's Facebook Page, or any Open Graph object within the app

必須是Facebook Page(粉絲頁),或Open Graph object 才行。(感覺我整個被陰了)

 

而Android Like View 的開發文章參考如下:

https://developers.facebook.com/docs/android/like-button

 

但應該是3.1.9之後出來的吧,不確定,終之去下載最新的Facebook SDK

https://developers.facebook.com/docs/android/getting-started

下載

https://developers.facebook.com/resources/facebook-android-sdk-current.zip

 

將裡面資料夾中的

facebook,

加入你的Eclipse Workspace裡。

並設定 facebook專案/右鍵/Properties/Android/ 選擇至少2.2以上(任一Android版本)。

 

在你要開發的專案下加入該facebook library 

 

在有likeview的頁面

撰寫以下程式

    private UiLifecycleHelper uiHelper;    

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mBtnStore.setOnClickListener(this);              
        
        uiHelper = new UiLifecycleHelper(this,mStatusCallback);
        // if you don't want to use the UiLifecycleHelper, call sdkInitialize instead
        // Settings.sdkInitialize(this);
        
        LikeView likeView = (LikeView) findViewById(R.id.like_view);
        likeView.setObjectId(FACEBOOK_PAGE_URL);
        likeView.setLikeViewStyle(Style.BOX_COUNT);    
    }   
    
    StatusCallback mStatusCallback = new StatusCallback(){
        @Override
        public void call(Session session, SessionState state, Exception exception) {

        }
    };
    
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        
        uiHelper.onActivityResult(requestCode, resultCode, data, null);
        // if you don't use the UiLifecycleHelper, call handleOnActivityResult on the LikeView instead
        // LikeView.handleOnActivityResult(this, requestCode, resultCode, data);
    }

XML LAYOUT 部份如下

    <com.facebook.widget.LikeView
        android:id="@+id/like_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">        
    </com.facebook.widget.LikeView>

 

因為有使用Facebook SDK

所以需設定一些東西在AndroidManifest.xml

在application tag 下加入

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

 

 

附上Web版處理like的連結與相關文章

https://developers.facebook.com/docs/plugins/like-button/

http://www.wibibi.com/info.php?tid=370

http://www.inside.com.tw/2010/04/22/how-to-install-your-own-facebook-like-button