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
問題の根源になる可能性のある自分のアプリケーションでシングルサインインを使用しようとしましたが、うまくいけばログインとパスワードを求められました。 – HaMMeReD
私は自分の携帯電話からすべてのFacebook Appのアップデートを削除し、すべての私の機能は動作しますが、最新のFacebookアプリでのみ壊れているようです。誰でも回避策がありますか?ログインはちょうどコールバックではありません – HaMMeReD