2011-10-26 82 views
0

我在android上執行facebook post有一個小問題。我試圖以這種方式實現它,當我點擊一個按鈕時,它會自動發佈到用戶牆上。首先,我不知道在哪裏保存用戶登錄信息,或者facebook api已經處理了這些信息?最重要的是,我已經嘗試了一些示例代碼,並且遇到了授權facebookClient的問題。如何實現Facebook授權以允許Facebook發佈hrough android?

private Button.OnClickListener myButtonOnClickListener = new Button.OnClickListener(){ 

    @Override 
    // on click load the asynctask to run. 

    public void onClick(View arg0) { 
     facebookClient = new Facebook(APP_ID); 
     facebookAsync = new AsyncFacebookRunner(facebookClient); 

     if (facebookClient.isSessionValid()) { 
      uploadVideoFile(); 
     } 
     else { 
      facebookClient.authorize(this, new String[] {"publish_stream"}, new Facebook.DialogListener() { 

       @Override 
       public void onFacebookError(FacebookError e) { 
        (RESULT_CANCELED); 
       } 

       @Override 
       public void onError(DialogError e) { 
       (RESULT_CANCELED); 
       } 

       @Override 
       public void onComplete(Bundle values) { 
        uploadVideoFile(); 
       } 

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

    }; 

facebookClient.authorize(this, new String[] {"publish_stream"}, new Facebook.DialogListener() 

它告訴我, The method authorize(Activity, String[], Facebook.DialogListener) in the type Facebook is not applicable for the arguments (new View.OnClickListener(){}, String[], new Facebook.DialogListener(){}).

我堅持和困惑在此,請任何幫助就足夠了。

回答

0

這是因爲您傳遞給authorize()方法的this是Activity的實例。嘗試用您的onClickListener替換它,它應該是myButtonOnClickListener

+2

這是相反的。他應該把ActivityName.this放在那裏。 – AmITheRWord