其實我有一個問題 - 我在我的應用程序中登錄到Facebook。我也可以做用戶授權的牆貼,但我需要每次調用授權 - 這需要一些時間,並導致在屏幕上(短時間)的事實,有「盒子」與白色背景(https://dl.dropbox.com/u/41114685/1.JPG)即生成(誘導)Facebook。這就是爲什麼我感興趣的是,是否有可能在用戶的牆上做一個帖子不會導致,每次都需要一種驗證方法(使方法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;
}
你能解釋一下爲什麼需要包括SessionEvents.AuthListener? –
這在教程中有很好的解釋:「需要注意的一點是,當用戶點擊發布消息按鈕時,除了登錄之外,我們還想發送消息到Facebook牆。執行登錄,緊接着是可以通過向SessionEvents添加一個AuthenticationListener(SessionEvents.AuthListener)來完成一個動作(在這種情況下發送一條消息)。「 - 所以基本上它被用來將監聽器掛鉤到auth事件,並且一旦通過認證就在牆上發佈信息 – Waqas