![](/img/trans.png)
[英]How to get profile pic from facebook using Picasso [Android Studio]
[英]How to get id and name from facebook profile using facebook sdk?
我知道這種方式正在使用JSON,而且我已經閱讀了很多有關如何使用JSON的信息,但是我仍然不知道在哪里必須放置JSON代碼,以便我可以獲取ID和名稱,因為我嘗試的所有操作都沒有做到這一點。 t工作(為空)。 你們能給我建議我在哪里索取ID和名稱,以便我真正得到它們嗎? 這是我與Facebook相關的主要課程中的所有內容:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
this.facebookConnector.getFacebook().authorizeCallback(requestCode, resultCode, data);
}
@Override
protected void onResume() {
super.onResume();
updateLoginStatus();
}
public void updateLoginStatus() {
loginStatus.setText("Logged into Facebook as "+ facebookConnector.getUserName() + facebookConnector.getFacebook().isSessionValid());
}
public void postMessage() {
if (facebookConnector.getFacebook().isSessionValid()) {
postMessageInThread();
} else {
SessionEvents.AuthListener listener = new SessionEvents.AuthListener() {
@Override
public void onAuthSucceed() {
postMessageInThread();
}
@Override
public void onAuthFail(String error) {
}
};
SessionEvents.addAuthListener(listener);
facebookConnector.login();
}
}
private void postMessageInThread() {
Thread t = new Thread() {
public void run() {
try {
facebookConnector.postMessageOnWall("test");
mFacebookHandler.post(mUpdateFacebookNotification);
} catch (Exception ex) {
Log.e(TAG, "Error sending msg",ex);
}
}
};
t.start();
}
private void clearCredentials() {
try {
facebookConnector.getFacebook().logout(getApplicationContext());
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
最后我嘗試了
AsyncFacebookRunner myAsyncRunner = new AsyncFacebookRunner(facebook);
myAsyncRunner.request("me", new meRequestListener());
接着
public class meRequestListener implements RequestListener {
public void onComplete(String response, Object state) {
fbName = response;
}
當我得到的字符串
public String getUserName () {
return fbName;
}
它仍然為空。 請幫助。
您可以使用此代碼:(此代碼使用Facebook SDK 3.02)
用戶身份:
final Session session = Session.getActiveSession();
if (session != null && session.isOpened()) {
// If the session is open, make an API call to get user data
// and define a new callback to handle the response
Request request = Request.newMeRequest(session, new Request.GraphUserCallback() {
@Override
public void onCompleted(GraphUser user, Response response) {
// If the response is successful
if (session == Session.getActiveSession()) {
if (user != null) {
user_ID = user.getId();//user id
profileName = user.getName();//user's profile name
userNameView.setText(user.getName());
}
}
}
});
Request.executeBatchAsync(request);
}
user_ID
和profileName
是字符串。
嘗試這個:
AsyncFacebookRunner myAsyncRunner = new AsyncFacebookRunner(facebook);
JSONObject json = Util.parseJson(myAsyncRunner.request("me", new meRequestListener()));
String facebookID = json.getString("id");
String firstName = json.getString("name");
System.out.println("Details: "+id+" "+name);
希望對您有幫助。
這是解決方案
String response = facebook.request("me", param, "GET");
希望它對遇到類似問題的人有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.