socialouth android无法从facebook和Twitter获取联系人
我按照所有说明集成Facebook实现,如中所示。我正在获取个人资料信息,但当我尝试获取联系人列表时,它会引发一个异常,名为org.brickred.socialauth.exception.SocialAuthException:Error,在获取联系人时出错。 我几乎按照所有的指示去解决,但没有结果。 请帮我解决这个问题。 这是代码snippletsocialouth android无法从facebook和Twitter获取联系人,android,Android,我按照所有说明集成Facebook实现,如中所示。我正在获取个人资料信息,但当我尝试获取联系人列表时,它会引发一个异常,名为org.brickred.socialauth.exception.SocialAuthException:Error,在获取联系人时出错。 我几乎按照所有的指示去解决,但没有结果。 请帮我解决这个问题。 这是代码snipplet loginfacebook.setOnClickListener(new View.OnClickListener() {
loginfacebook.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
try {
dialog = ProgressDialog.show(MainHome.this, "",
"Login Processing..", true);
adapter = new SocialAuthAdapter(new ResponseListener());
adapter.authorize(MainHome.this, SocialAuthAdapter.Provider.FACEBOOK);
} catch (Exception ex) {
Log.e("MainHome", "Here!!!!!");
}
}
});
loginTwitter.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
try {
dialog = ProgressDialog.show(MainHome.this, "",
"Login Processing..", true);
adapter = new SocialAuthAdapter(new ResponseListenerTwitter());
adapter.authorize(MainHome.this, SocialAuthAdapter.Provider.TWITTER);
} catch (Exception ex) {
Log.e("log_tag", "Exception In Calling Method ");
}
}
});
// Response Listener Facebook
private final class ResponseListener implements DialogListener
{
public void onComplete(Bundle values) {
Log.d("MainHome" , "Authentication Successful");
adapter.getContactListAsync(new ContactDataListener());
profileMap = adapter.getUserProfile();
Log.d("MainHome", "First Name = " + profileMap.getFirstName());
Log.d("Custom-UI", "Last Name = " + profileMap.getLastName());
Log.d("Custom-UI", "Email = " + profileMap.getEmail());
// Log.d("Custom-UI", "Profile Image URL = " + profileMap.getProfileImageURL());
Log.d("Custom-UI", "Validate ID = " + profileMap.getValidatedId());
startActivity(new Intent(getApplicationContext(), UserHome.class));
dialog.dismiss();
}
}
// Response Listener Twitter
private final class ResponseListenerTwitter implements DialogListener
{
public void onComplete(Bundle values) {
Log.d("Custom -UI" , "Authentication Successful");
Profile profileMap;
profileMap = adapter.getUserProfile();
Log.d("Twitter-UI", "First Name = " + profileMap.getFullName());
Log.d("Twitter-UI", "Last Name = " + profileMap.getLastName());
Log.d("Twitter-UI", "Email = " + profileMap.getEmail());
Log.d("Custom-UI", "Profile Image URL = " + profileMap.getProfileImageURL());
Log.d("Twitter-UI", "Validate ID = " + profileMap.getValidatedId());
startActivity(new Intent(getApplicationContext(), ProfileInfo.class));
dialog.dismiss();
Toast.makeText(getApplicationContext(), "User is connected! With Twitter ",Toast.LENGTH_LONG).show();
}
}
private final class ContactDataListener implements SocialAuthListener<List<Contact>> {
@Override
public void onExecute(String provider, List<Contact> t) {
Log.d("Custom-UI", "Receiving Data ContactDataListener");
// mDialog.dismiss();
List<Contact> contactsList = t;
if (contactsList != null && contactsList.size() > 0) {
for (Contact c : contactsList) {
Log.d("Custom-UI", "Display Name = " + c.getDisplayName());
Log.d("Custom-UI", "First Name = " + c.getFirstName());
Log.d("Custom-UI", "Last Name = " + c.getLastName());
Log.d("Custom-UI", "Contact ID = " + c.getId());
Log.d("Custom-UI", "Profile URL = " + c.getProfileUrl());
Log.d("Custom-UI", "Profile Image URL = " + c.getProfileImageURL());
Log.d("Custom-UI", "Email = " + c.getEmail());
}
} else {
Log.d("Custom-UI", "Contact List Empty");
}
}
@Override
public void onError(SocialAuthError e) {
Log.d("Custom-UI", "Error : "+e);
e.printStackTrace();
}
未设置您的访问令牌:
W/System.err?原因:java.io.FileNotFoundException:access\u令牌太长,所以我用XXXXXXXXX替换了它
I/FacebookImpl? Fetching contacts from https://graph.facebook.com/me/friends
I/System.out? [CDS]rx timeout:0
W/System.err? org.brickred.socialauth.exception.SocialAuthException: Error while getting contacts from https://graph.facebook.com/me/friends
W/System.err? at org.brickred.socialauth.provider.FacebookImpl.getContactList(FacebookImpl.java:318)
W/System.err? at org.brickred.socialauth.android.SocialAuthAdapter$ContactTask.doInBackground(SocialAuthAdapter.java:1085)
W/System.err? at org.brickred.socialauth.android.SocialAuthAdapter$ContactTask.doInBackground(SocialAuthAdapter.java:1073)
W/System.err? at android.os.AsyncTask$2.call(AsyncTask.java:287)
W/System.err? at java.util.concurrent.FutureTask.run(FutureTask.java:234)
W/System.err? at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
W/System.err? at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
W/System.err? at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
W/System.err? at java.lang.Thread.run(Thread.java:838)
W/System.err? Caused by: java.io.FileNotFoundException: https://graph.facebook.com/me/friends?access_token=xxxxxxxxxxxxxxxxxxxx
W/System.err? at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:194)
W/System.err? at libcore.net.http.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:271)
W/System.err? at org.brickred.socialauth.util.Response.getResponseBodyAsString(Response.java:104)
W/System.err? at org.brickred.socialauth.provider.FacebookImpl.getContactList(FacebookImpl.java:316)
W/System.err? ... 8 more
W/System.err? org.brickred.socialauth.android.SocialAuthError: Contact List not Received
W/System.err? at org.brickred.socialauth.android.SocialAuthAdapter$ContactTask.doInBackground(SocialAuthAdapter.java:1090)
W/System.err? at org.brickred.socialauth.android.SocialAuthAdapter$ContactTask.doInBackground(SocialAuthAdapter.java:1073)
W/System.err? at android.os.AsyncTask$2.call(AsyncTask.java:287)
W/System.err? at java.util.concurrent.FutureTask.run(FutureTask.java:234)
W/System.err? at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
W/System.err? at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
W/System.err? at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
W/System.err? at java.lang.Thread.run(Thread.java:838)