1
我有問題,以圖片牆壁使用Facebook SDK。以下是我的代碼。在活動的開始Android無法將圖片張貼到牆上使用Facebook sdk
Facebook的權限對話框:
fb = new Facebook(fb_id);
fb.authorize(this, new String[] { "publish_stream",
"read_stream", "offline_access","read_friendlists"}, new DialogListener(){
public void onComplete(Bundle values) {
Log.e("oncomplete","value");
if (values.isEmpty()) {
Log.e("oncomplete","value is empty");
return;
}
if (!values.containsKey("POST")) {
token = fb.getAccessToken();
}
}
public void onFacebookError(FacebookError e) {}
public void onError(DialogError e){}
public void onCancel() {}
});
在按鈕的點擊發送料牆
public void onClick(View v){
if(v==post_to_wall){
Toast.makeText(getApplicationContext(), "fb token " + token, Toast.LENGTH_LONG).show();
final Handler handler = new Handler(){
public void handleMessage(Message what){
finish();
}
};
Thread thread = new Thread(){
public void run(){
publishToFriendsWall(friends_id);
handler.sendEmptyMessage(0);
}
};
thread.start();
}
}
發佈到留言板方法
public void publishToFriendsWall(String friends_id){
if(fb.isSessionValid()){
try{
Bundle params = new Bundle();
params.putString(Facebook.TOKEN, token);
params.putString("message", edittext.getText().toString());
params.putString("link", "http://www.mysite.com");
params.putString("caption", "my caption");
params.putString("description", "description of my link. Click the link to find out more.");
params.putString("name", "my name");
//params.putString("picture", "mypic url");
fb.request(((friends_id == null) ? "me" : friends_id) + "/feed", params, "POST");
}catch(Exception e){
Log.d(null, "Fb post to wall error occured " + e.getClass().getName());
}
}
}
的問題是,當我把下面的代碼
params.putString("picture", "mypic url");
那裏沒有任何內容發佈到牆上,如果我評論上面的代碼它工作正常,我通過Facebook圖表api文檔閱讀張貼圖片它是需要訪問令牌和有效的圖片的網址。我通過獲取訪問令牌完成了所有這些工作,並且URL是有效的。我的代碼有什麼問題?也沒有發現錯誤。我在logcat中唯一得到的警告一樣
Key picture expected byte[] but value was a java.lang.String. the default value <null> was return
Attempt to cast generated internal exception:
java.lang.ClassCastException: java.lang.String
at android.os.Bundle.getByteArray(Bundle.java:1305)
at com.facebook.android.Util.encodePostBody(Util.java:63)
at com.facebook.android.Util.openUrl(Util.java:182)
at com.facebook.android.Facebook.request(Facebook.java:563)
實際上圖片應該是字節類型,但是你試圖在那裏使用一個字符串? – 2012-01-11 04:41:19
是一個字符串,但在類型的網址,因爲大多數在網絡上的例子,他們把圖片的網址。來自http://developers.facebook.com/docs/reference/api/post/的圖形路徑api文檔也聲明它需要有效的字符串url。 – Zahary 2012-01-11 05:05:17