2013-08-04 69 views
1

我想在我的應用中實現Facebook集成。在這個時候,我有登錄和發佈到牆上的功能,但我擁有的牆貼只是簡單的牆貼。Facebook Feed對話框,包含以下游戲圖片和說明

我想實現this。就像在每場比賽,他們有這樣的Facebook飼料..

這是當前代碼我..

package com.example.facebooktrial; 

import android.app.Activity; 
import android.content.SharedPreferences; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 

import com.facebook.android.AsyncFacebookRunner; 
import com.facebook.android.DialogError; 
import com.facebook.android.Facebook; 
import com.facebook.android.Facebook.DialogListener; 
import com.facebook.android.FacebookError; 

@SuppressWarnings("deprecation") 
public class AndroidFacebookConnectActivity extends Activity { 
    Button btnFbLogin; 
    Button btnPostToWall; 


    // Your Facebook APP ID 
    private static String APP_ID = "593769430655402"; // Replace your App ID here 

    // Instance of Facebook Class 
    private Facebook facebook; 
    private AsyncFacebookRunner mAsyncRunner; 
    String FILENAME = "AndroidSSO_data"; 
    private SharedPreferences mPrefs; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     btnFbLogin = (Button) findViewById(R.id.btnFbLogin); 
     btnPostToWall = (Button) findViewById(R.id.btnFbPost); 

     facebook = new Facebook(APP_ID); 
     mAsyncRunner = new AsyncFacebookRunner(facebook); 

     btnFbLogin.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
        loginToFacebook(); 
       } 
     }); 
     btnPostToWall.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       postToWall(); 
      } 
     }); 


    } 
    @SuppressWarnings("deprecation") 
    public void loginToFacebook() { 
     mPrefs = getPreferences(MODE_PRIVATE); 
     String access_token = mPrefs.getString("access_token", null); 
     long expires = mPrefs.getLong("access_expires", 0); 

     if (access_token != null) { 
      facebook.setAccessToken(access_token); 
     } 

     if (expires != 0) { 
      facebook.setAccessExpires(expires); 
     } 

     if (!facebook.isSessionValid()) { 
      facebook.authorize(this, 
        new String[] { "email", "publish_stream" }, 
        new DialogListener() { 

         @Override 
         public void onCancel() { 
          // Function to handle cancel event 
         } 

         @Override 
         public void onComplete(Bundle values) { 
          // Function to handle complete event 
          // Edit Preferences and update facebook acess_token 
          SharedPreferences.Editor editor = mPrefs.edit(); 
          editor.putString("access_token", 
            facebook.getAccessToken()); 
          editor.putLong("access_expires", 
            facebook.getAccessExpires()); 
          editor.commit(); 
         } 

         @Override 
         public void onError(DialogError error) { 
          // Function to handle error 

         } 

         @Override 
         public void onFacebookError(FacebookError fberror) { 
          // Function to handle Facebook errors 

         } 

        }); 
     } 
    } 

    @SuppressWarnings("deprecation") 
    public void postToWall() { 
     // post on user's wall. 
     facebook.dialog(this, "feed", new DialogListener() { 

      @Override 
      public void onFacebookError(FacebookError e) { 
      } 

      @Override 
      public void onError(DialogError e) { 
      } 

      @Override 
      public void onComplete(Bundle values) { 
      } 

      @Override 
      public void onCancel() { 
      } 
     }); 

    } 
} 
+0

請張貼您目前用來生成牆的代碼(儘可能簡潔)。 –

+0

我已經編輯過這篇文章。謝謝 – edmund02

+0

@SteveP。請幫助我...我需要這麼做,因爲它是我論文的一部分.. – edmund02

回答

1

我找到了解決辦法。只是要使用Bundle在這裏您可以存儲所有喜歡的圖片,名稱,鏈接等等。經過必要的信息,包括在Facebook的對話作爲一個參數,包..

@SuppressWarnings("deprecation") 
    public void postToWall() { 
     // post on user's wall. 

     Bundle params = new Bundle(); 
     params.putString("name", "Check it out, I am playing FLIP game!"); 
     params.putString("caption", "Come on FLIP with me"); 
     params.putString("description", "FLIP!"); 
     params.putString("picture", "http://www.rawk.com/media/images/uploaded/products/2099/flip-hkd-black-complete-skateboard.3043.full.jpg"); 
     facebook.dialog(this, "feed",params, new DialogListener() { 

      @Override 
      public void onFacebookError(FacebookError e) { 
      } 

      @Override 
      public void onError(DialogError e) { 
      } 

      @Override 
      public void onComplete(Bundle values) { 
      } 

      @Override 
      public void onCancel() { 
      } 
     }); 

    }