1
facebook sdk를 사용하여 벽에 사진을 찍는 데 문제가 있습니다. 아래는 제 코드입니다. 활동의 시작에Android-facebook sdk를 사용하여 벽에 그림을 게시 할 수 없습니다
페이스 북의 권한 대화 : 피드
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();
}
}
벽 버튼의 클릭에 보내
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 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");
거기에 아무 것도 게시되지 않았고 내가 위의 코드에 댓글을 달았다면 정상적으로 작동합니다. 그림을 게시하려면 페이스 북 그래프 API 문서를 읽고 사진에 필요한 액세스 토큰과 유효한 URL이 있어야합니다. 나는 액세스 토큰을 얻고 url이 유효하다는 것으로 모든 것을 끝냈다. 내 코드에 어떤 문제가 있습니까? 또한 아무런 오류도 발견되지 않았습니다. 내가 로그 캣에서 얻을 수있는 유일한 방법은
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)
같은
실제로 그림이 바이트 유형이어야하지만, 거기에 문자열을 사용하려고합니까? –
예. 문자열이지만 URL 유형입니다. 웹상의 예제 대부분이 그림에 대한 URL을 넣기 때문입니다. http://developers.facebook.com/docs/reference/api/post/의 그래프 경로 api 문서에도 올바른 문자열 URL이 필요하다고 나와 있습니다. – Zahary