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
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.
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