[英]Facebook Android Integration Error
使用我的应用程序登录Facebook时遇到问题,它显示以下错误
“未设置应用程序:此应用程序的开发人员尚未针对Facebook登录正确设置此应用程序”
这是我的代码:
package com.example.dronacharyaratings;
import com.facebook.android.AsyncFacebookRunner;
import com.facebook.android.DialogError;
import com.facebook.android.Facebook;
import com.facebook.android.Facebook.DialogListener;
import com.facebook.android.FacebookError;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.Toast;
public class login extends ActionBarActivity implements OnClickListener {
ImageButton imgbtn;
// Your Facebook APP ID
private static String APP_ID = "578242662259998"; // Replace with your App ID
// Instance of Facebook Class
@SuppressWarnings("deprecation")
private Facebook facebook = new Facebook(APP_ID);
@SuppressWarnings({ "deprecation", "unused" })
private AsyncFacebookRunner mAsyncRunner;
String FILENAME = "AndroidSSO_data";
private SharedPreferences mPrefs;
@SuppressWarnings("deprecation")
public void onCreate(final Bundle savedInstanceState1) {
super.onCreate(savedInstanceState1);
setContentView(R.layout.login);
getSupportActionBar().hide();
mAsyncRunner = new AsyncFacebookRunner(facebook);
imgbtn = (ImageButton)findViewById(R.id.imageButton1);
imgbtn.setOnClickListener(this);
}
public void onClick(View arg0) {
Log.d("Image Button", "button Clicked");
loginToFacebook();
}
@SuppressWarnings("deprecation")
private void loginToFacebook() {
// TODO Auto-generated method stub
mPrefs = getPreferences(MODE_PRIVATE);
String access_token = mPrefs.getString("access_token", null);
long expires = mPrefs.getLong("access_expires", 0);
if (access_token != null) {
facebook.setAccessToken(access_token);
Log.d("FB Sessions", "" + facebook.isSessionValid());
}
if (expires != 0) {
facebook.setAccessExpires(expires);
}
if (!facebook.isSessionValid()) {
facebook.authorize(this,
new String[] { "email", "publish_stream" },
new DialogListener() {
@Override
public void onCancel() {
// Function to handle cancel event
}
@Override
public void onComplete(Bundle values) {
// Function to handle complete event
// Edit Preferences and update facebook acess_token
SharedPreferences.Editor editor = mPrefs.edit();
editor.putString("access_token",
facebook.getAccessToken());
editor.putLong("access_expires",
facebook.getAccessExpires());
editor.commit();
}
@Override
public void onFacebookError(FacebookError e) {
// TODO Auto-generated method stub
}
@Override
public void onError(DialogError e) {
// TODO Auto-generated method stub
}
});
}
}
@SuppressWarnings("deprecation")
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
facebook.authorizeCallback(requestCode, resultCode, data);
}
/**
* Function to show Access Tokens
* */
public void showAccessTokens() {
@SuppressWarnings("deprecation")
String access_token = facebook.getAccessToken();
Toast.makeText(getApplicationContext(),
"Access Token: " + access_token, Toast.LENGTH_LONG).show();
}
}
仅当您的应用未公开时才会出现此问题。
为此,您应该首先登录您的developers.facebook.com
以及您特定应用的状态和审核
将按钮切换至“ 是” ,并显示“您是否要向公众提供此应用程序及其所有实时功能?”
您可能会收到此错误消息,可能是因为您的应用程序不是公开的,只有您作为管理员才有权登录。要使该应用程序公开并允许其他人使用您的应用程序,请执行以下步骤。 1)确保在设置->基本部分的“联系电子邮件”字段中有有效的电子邮件。 2)一旦您提供了有效的电子邮件,则只有您可以将您的应用公开,以便FB可以就您的应用与您联系。 3)在“状态和审查”部分中,更改“您是否要向公众提供此应用程序及其所有实时功能的选项”? 从“否”到“是”,然后在弹出消息上按确认。 您会在应用名称旁边看到一个红点,这表明您的应用现已公开,并且所有人都可以使用自己的凭据登录。 快乐的Facebook!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.