Search code examples
javaandroidsocialauth

oauth_consumer.properties not found social auth android


I am using SocialAuth library for auth user with Facebook, Twitter and Google. I have some Questions.

I am getting below error in 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

Below is my folder structure

enter image description here

My 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();
        }
    });

  }

}

What will be use of callback url in app. what will be posted at callback url?

How can I show this login screen only first time ?

One way will be SharedPreference to store the settings of user logged in, is there any way in SocialAuth library to do this.

Thanks for this Library its great but documentation can be improved.


Solution

  • After banging my head for full 2 days i found the error

    You need to put the assets folder on same level as res folder in order to load the oauth_consumer.properties file.

    src
        main
           assets
           java
           res
           AndroidManifest.xml