繁体   English   中英

Facebook Android集成错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM