2012-09-26 3 views
0

사실 저는 문제가 있습니다 - 저는 신청서에 Facebook에 로그인했습니다. 또한 사용자가 승인 한 벽 게시를 할 수도 있지만 승인을 요청할 때마다 필요할 때가 있습니다. 시간이 걸리고 화면 (잠시 동안)에 "상자"가 있습니다. 흰색 배경 (https://dl.dropbox.com/u/41114685/1.JPG) 생성 (유도) 페이스 북. 그렇기 때문에 사용자 벽면에 게시물을 게시 할 수 있는지 여부에 관심이있는 이유는 매번 인증을위한 메소드 (onComplete() 메소드를 통해 게시물을 올리는 데) 때문입니다. 귀하의 도움을 바랍니다.Facebook 사용자의 벽에 게시물을 올릴 수 있습니까? 각각의 경우에 권한을 부여하지 않았습니까?

package expir.java.file; 

import java.io.FileNotFoundException; 
import java.io.IOException; 
import java.net.MalformedURLException; 

import com.facebook.android.DialogError; 
import com.facebook.android.Facebook; 
import com.facebook.android.Facebook.DialogListener; 
import com.facebook.android.FacebookError; 

import android.app.Activity; 
import android.content.Context; 
import android.os.Bundle; 
import android.util.Log; 

public class FacebookAuthorizeAndPost implements DialogListener{ 

FacebookAuthorizeAndPost(Activity activity){ 
    this.activity = activity; 
} 

public void facebookAuthorize(){ 
    facebookClient = new Facebook(APP_ID); 
    facebookClient.authorize(activity, new String[]{"publish_stream"}, Facebook.FORCE_DIALOG_AUTH, this); 
} 

public void onComplete(Bundle values) { 
    if (values.isEmpty()) 
    { 
     return; 
    } 
    if (!values.containsKey("post_id")) 
    { 
     try 
     { 
      Bundle cont = new Bundle(); 
      cont.putString("message", "bla-bla-bla"); 
      cont.putString("name", "Testing facebook"); 
      cont.putString("link", "www.????????.com"); 
      cont.putString("description", "This is a funny real test!!! This is a funny real test!!! This is a funny real test!!! This is a funny real test!!!"); 
      cont.putString("picture", "http://code.google.com/p/android-developer-scripts/logo?cct=1294556390"); 
      //facebookClient.dialog(activity, "feed", cont, this); 
      facebookClient.request("me/feed", cont, "POST"); 
     } 
     catch (Exception e) 
     { 
      System.out.println(e.getMessage()); 
     } 
    } 
} 

public void onFacebookError(FacebookError e) { 
    // 
} 

public void onError(DialogError e) { 
    // 
} 

public void onCancel() { 
    // 
} 

public Activity activity; 
private final String APP_ID = "??????????????????"; 
private Facebook facebookClient; 

} 

답변

0

유효한 만료되지 않은 세션이 존재하는 경우는 다음 authorize() 방법은 다른 사용자의 벽에 게시를 계속 호출하지 않을 경우, 확인 Facebook 클래스의 isSessionValid() 방법을 사용할 수 있습니다.

또한 여기이 게시물을 참조하십시오 : http://blog.doityourselfandroid.com/2011/02/28/30-minute-guide-integrating-facebook-android-application/

+0

당신은 왜 SessionEvents.AuthListener을 포함 할 필요가 설명 할 수 있습니까? –

+0

자습서에서 잘 설명되어 있습니다. "중요한 것은 사용자가 메시지 게시 버튼을 클릭하면 로그인 만하는 것 외에도 Facebook 벽에 메시지를 보내려한다는 것입니다. SessionList에 AuthenticationListener (SessionEvents.AuthListener)를 추가하여 작업 (이 경우 메시지 전송)을 수행 할 수 있습니다. " - 기본적으로 청취자를 인증 이벤트에 연결하는 데 사용되며 일단 인증되면 벽에 게시하는 것으로 진행합니다. – Waqas

0

난 그냥 분 전에 몇 또 다른 질문에이의 예를 게시했다.

는 여기를 참조하십시오 - logging into facebook