1
在我的代碼中,我可以讓Facebook顯示出來,顯示請求的權限和授權,每次我回來後,它都會記住我是誰。Android Facebook API授權/記住它的一面,但不是我的?
在我的應用程序本身,雖然它似乎無法識別它已登錄,但對Authorize的調用永遠不會通過DialogListener接口返回。包括我的應用程序適配器的不完整代碼。
package com.metalrain.ca.newschoolshooter_full;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.MalformedURLException;
import Hammer.App.MyLibs.APPSTATICS;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import com.facebook.android.AsyncFacebookRunner;
import com.facebook.android.DialogError;
import com.facebook.android.Facebook;
import com.facebook.android.FacebookError;
import com.facebook.android.Facebook.DialogListener;
public class FacebookIntegrator implements DialogListener{
public static final String APP_ID = "176680882361390";
private final Facebook mFacebook;
//private final AsyncFacebookRunner mAsyncRunnoner;
Context ctx;
String[] Permissions = new String[] {"publish_stream", "read_stream", "offline_access"};
FacebookIntegrator(final Context ctx) {
this.ctx = ctx;
this.mFacebook = new Facebook(FacebookIntegrator.APP_ID);
//this.mAsyncRunner = new AsyncFacebookRunner(this.mFacebook);
}
public void SubmitScore() {
Log.e("MetalRain", "Started SubmitScore"+mFacebook.getAccessToken());
//I use the class from the login button to do this
//final LoginButton lb = new LoginButton(this.ctx);
if (mFacebook.isSessionValid()) {
Log.i("MetalRain", "There is a valid facebook sessi");
Bundle b = new Bundle();
try {
mFacebook.request("/me/feed", b, "POST");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
b.putString("status", "This is a test: name");
} else {
Log.i("MetalRain","Authorizing facebook");
mFacebook.authorize((Activity) this.ctx,this.Permissions,
this);
}
Log.e("MetalRain", "Finished SubmitScore");
}
public void onComplete(Bundle values) {
if (!values.containsKey("post_id"))
{
try
{
Bundle parameters = new Bundle();
parameters.putString("message", "this is a test");// the message to post to the wall
mFacebook.dialog(APPSTATICS.CTX, "stream.publish", parameters, this);// "stream.publish" is an API call
}
catch (Exception e)
{
// TODO: handle exception
System.out.println(e.getMessage());
}
}
Log.e("MetalRain", "On Complete");
}
public void onFacebookError(FacebookError error) {
Log.e("MetalRain","fbFAILURE "+error.getMessage());
}
public void onError(DialogError error) {
Log.e("MetalRain","FAILURE "+error.getMessage());
}
public void onCancel() {
Log.e("MetalRain","CANCELED");
}
}
我沒有看到任何錯誤或任何日誌消息後返回。它只是返回到我的活動,並且就像沒有任何事情發生一樣。
我已經在模擬器中取得了成功。我的代碼在那裏工作,我運行它,提交了測試消息,它寫到我的牆上。仍然沒有成功的聯繫之一。 UI也不同,它在對話框中顯示登錄窗口,而在我的N1上,它顯示爲全屏活動? – HaMMeReD 2010-12-19 08:32:52
我應該提及,當它工作時,它會問我登錄名和密碼,雖然我試圖使用單點登錄與我的應用程序,這可能是問題的根源? – HaMMeReD 2010-12-19 08:35:31
我從我的手機中刪除了所有的Facebook應用程序更新,並且我的所有功能都能正常工作,似乎只能通過最新的Facebook應用程序才能打破。任何人都有解決方法?登錄工作不只是回調 – HaMMeReD 2010-12-19 10:18:56