oauth_consumer.properties找不到社交auth android

时间:2015-03-06 11:21:16

标签: java android socialauth

我正在使用SocialAuth库为 Facebook Twitter Google 的auth用户。我有一些问题。

我在log cat中遇到错误

D/SocialAuthAdapter﹕ Selected provider is facebook
D/SocialAuthAdapter﹕ Loading keys and secrets from configuration
D/SocialAuthAdapter﹕ oauth_consumer.properties not found
D/SocialAuthAdapter﹕ Could not load configuration
D/SocialAuthAdapter﹕ Starting webview for authentication
D/SocialAuthError﹕ org.brickred.socialauth.exception.SocialAuthConfigurationException: SocialAuth configuration is null.
E/Login activity﹕ URL Authentication error

以下是我的文件夹结构

enter image description here

我的LoginActivity.java

public class LoginActivity extends ActionBarActivity {

private SocialAuthAdapter adapter;

//Android Component
private Button fb_button, tw_button, g_button;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getSupportActionBar().hide();
    setContentView(R.layout.activity_login);

    //Social Adapter
    adapter = new SocialAuthAdapter(new DialogListener() {
        @Override
        public void onComplete(Bundle bundle) {
            adapter.getUserProfileAsync(new SocialAuthListener<Profile>() {
                @Override
                public void onExecute(String s, Profile profile) {
                    Log.e("Custom UI", "Login Receiving Data");
                    Profile profileMap = profile;
                    Log.d("Custom-UI",  "Validate ID         = " + profileMap.getValidatedId());
                    Log.d("Custom-UI",  "First Name          = " + profileMap.getFirstName());
                    Log.d("Custom-UI",  "Last Name           = " + profileMap.getLastName());
                    Log.d("Custom-UI",  "Email               = " + profileMap.getEmail());
                    Log.d("Custom-UI",  "Gender              = " + profileMap.getGender());
                    Log.d("Custom-UI",  "Country             = " + profileMap.getCountry());
                    Log.d("Custom-UI",  "Language            = " + profileMap.getLanguage());
                    Log.d("Custom-UI",  "Location            = " + profileMap.getLocation());
                    Log.d("Custom-UI",  "Profile Image URL   = " + profileMap.getProfileImageURL());
                }

                @Override
                public void onError(SocialAuthError socialAuthError) {
                    Log.e("Custom UI", "Profile Data Error");
                }
            });
        }

        @Override
        public void onError(SocialAuthError socialAuthError) {
            Log.e("Login activity", socialAuthError.getMessage());
        }

        @Override
        public void onCancel() {

        }

        @Override
        public void onBack() {

        }
    });


    //Wire up the Login Buttons
    fb_button = (Button) findViewById(R.id.buttonFB);
    tw_button = (Button) findViewById(R.id.buttonTwitter);
    g_button = (Button) findViewById(R.id.buttonGoogle);

    //Event Listener for Click

    //Facebook
    fb_button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            adapter.authorize(LoginActivity.this, SocialAuthAdapter.Provider.FACEBOOK);
            Toast.makeText(LoginActivity.this, "I am Facebook", Toast.LENGTH_SHORT).show();
        }
    });

    //Twitter
    tw_button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            adapter.addCallBack(SocialAuthAdapter.Provider.TWITTER,"http://domain.com/auth/twitter");
            adapter.authorize(LoginActivity.this, SocialAuthAdapter.Provider.TWITTER);
            Toast.makeText(LoginActivity.this, "I am Twitter", Toast.LENGTH_SHORT).show();
        }
    });

    //Google
    g_button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            adapter.addCallBack(SocialAuthAdapter.Provider.GOOGLE,"http://domain.com/google");
            adapter.authorize(LoginActivity.this, SocialAuthAdapter.Provider.GOOGLE);
            Toast.makeText(LoginActivity.this, "I am Google", Toast.LENGTH_SHORT).show();
        }
    });

  }

}

app中将使用callback个网址。什么将在回调网址上发布?

如何才能首次显示此登录屏幕?

一种方式是SharedPreference来存储登录用户的设置,SocialAuth库中是否有任何方法可以执行此操作。

感谢这个图书馆,它很棒,但文档可以改进。

1 个答案:

答案 0 :(得分:2)

在我的头部撞了整整2天后,我发现了错误

您需要将assets文件夹放在与res文件夹相同的级别,才能加载oauth_consumer.properties文件。

src
    main
       assets
       java
       res
       AndroidManifest.xml

我只是需要以下疑惑来澄清你们是否可以提供帮助

app中将使用回调网址。什么将在回调网址上发布?

如何才能首次显示此登录屏幕?

一种方式是SharedPreference来存储登录用户的设置,SocialAuth库中是否有任何方法可以执行此操作。