2014-02-16 55 views
4

我分享了一個網址從我的Android應用程序到FB:沒有做FB喜歡帖子ID我剛剛分享成功

然後我救一邊(硬編碼)的帖子ID

我嘗試做「 FB像」這一職務

使用此代碼,但得到一個錯誤:

Button socialBtn3 = (Button) dialog 
         .findViewById(R.id.socialBtn3); 
       socialBtn3.setOnClickListener(new OnClickListener() { 

        String fbPostId = "685560152_10153809399380153"; 
        @Override 
        public void onClick(View v) { 

         new LikeFbPostAsyncTask().execute(fbPostId); 
        } 
       }); 

這:

public class LikeFbPostAsyncTask extends AsyncTask<String, Void, Void> { 

    public LikeFbPostAsyncTask() { 
    } 

    @Override 
    protected void onPreExecute() { 
     Log.i("LikeFbPostAsyncTask", "Starting web task..."); 
    } 

    @Override 
    protected Void doInBackground(String... fbPostId) { 

     Request likeRequest = new Request(Session.getActiveSession(), 
       fbPostId + "/likes", null, HttpMethod.POST, 
       new Request.Callback() { 

        @Override 
        public void onCompleted(Response response) { 
         Log.i(TAG, response.toString()); 

         // how to return to ui thread? 
         // return response; 
        } 
       }); 
     Request.executeBatchAndWait(likeRequest); 
     return null; 

    } 

    @Override 
    protected void onPostExecute(Void res) { 

    } 
} 

{Response: responseCode: 404, graphObject: null, error: {HttpStatus: 404, errorCode: 803, errorType: OAuthException, errorMessage: (#803) Some of the aliases you requested do not exist: [Ljava.lang.String;@4284cd10}, isFromCache:false}

我該如何解決這個問題?

+0

我不認爲你需要在這裏的'AsyncTask'因爲Facebook'execBatchandWait'也執行請求以異步的方式。 –

+0

我怎麼知道下次?這是寫在哪裏? –

+0

我不知道你的意思是 –

回答

2

您正在向AsyncTask發送一個String參數數組(String...)。 當提取陣列所需的字符串,你應該做的:的

Request likeRequest = new Request(Session.getActiveSession(), 
      fbPostId[0] + "/likes", null, HttpMethod.POST, 
      new Request.Callback() { 

代替:

Request likeRequest = new Request(Session.getActiveSession(), 
     fbPostId + "/likes", null, HttpMethod.POST, 
     new Request.Callback() { 
相關問題