2011-11-10 66 views
0

在我的項目中,我在第一次活動中驗證了我的Facebook帳戶,並檢索了當天有生日的朋友ID,姓名,生日和照片。我將它們捆綁到下一個活動並在列表視圖中顯示圖片和名稱。當我點擊列表時,我想發佈一些消息到他們的牆上。我用下面的代碼在單擊listview的同時發佈在朋友牆上。發佈在朋友的臉書上

public static String APP_ID = "my_app_id"; 
     public static Facebook authenticatedFacebook = new Facebook(APP_ID); 

在我的ListView onclickitemlistner我用下面的代碼。 id_list是一個ArrayList,包含好友的ID。

try{ 
         Bundle parameters = new Bundle(); 
         JSONObject attachment = new JSONObject(); 

         try { 
          attachment.put("message", "Many more returns of the day"); 


         } catch (JSONException e) { 
         } 
         parameters.putString("attachment", attachment.toString()); 

         parameters.putString("target_id", id_list.get(position)); 
         parameters.putString("method", "stream.publish"); 
         String response = authenticatedFacebook.request(parameters);  
         Log.v("response", response); 
        } 
        catch(Exception e){} 

在我的迴應中,我得到了無效的API密鑰。但我用了正確的鑰匙。

11-10 16:21:53.987: V/response(396): {"error_code":101,"error_msg":"Invalid API key","request_args":[{"key":"method","value":"stream.publish"},{"key":"attachment","value":"{\"message\":\"Many more returns of the day\"}"},{"key":"format","value":"json"},{"key":"target_id","value":"100000635832872"}]} 

我用同樣的代碼,用我的第一個活動的朋友,我驗證我的帳戶檢索到的ID發佈。它工作正常。但不能在第二個活動中使用listview顯示它們。我檢查了會話是否有效。它導致無效。

+0

我認爲你的朋友不允許應用在牆上發表評論。那是不是? 難道你不記得一個對話框出現在FB中,詢問用戶他允許應用程序訪問數據嗎? – Arslan

+0

然後如何張貼在他的牆上。建議我怎麼做到這一點。 – Manikandan

+0

我在活動中嘗試了相同的代碼,在那裏我用於驗證我的帳戶。它工作正常,並且信息會發布到我朋友的牆上。我認爲問題在於會議。 – Manikandan

回答

0

我明白了。只需更改Facebook.java類。將DEFAULT_AUTH_ACTIVITY_CODE更改爲FORCE_DIALOG_AUTH。並檢查Facebook會話。它與我的代碼正常工作。

0

你有用戶訪問令牌嗎?我沒有看到任何跡象表明,當你提出這個請求時,你有一個經過驗證的用戶可用

+0

其實我已經在第一次活動中驗證了我的Facebook帳戶,並檢索了朋友ID,圖片,生日。檢查是否有朋友在當前日期有生日。如果是這樣,將該朋友的詳細信息捆綁到另一個活動,我將它們列在一個列表視圖中。 – Manikandan

+0

您是否擁有該用戶的publish_stream權限?錯誤消息通常意味着存在格式錯誤的訪問令牌或類似 – Igy

+0

我在活動中的權限[]中添加了public_stream,這會對我的帳戶進行身份驗證。 – Manikandan