Facebook
SDKのログインボタンを使用するアプリケーションを開発しています。私はaccess_token
ユーザーを取得することができますが、私も欲しいですuserID
。私はほとんどすべてを試しましたが、成功しませんでした。私はそれを達成するためにFacebookのチュートリアルを使用しました。リンクは次のとおりです。Facebookログインボタン
userID
同じログインボタンから取得するのを手伝ってください。
どんな種類の助けもいただければ幸いです。
Facebook
SDKのログインボタンを使用するアプリケーションを開発しています。私はaccess_token
ユーザーを取得することができますが、私も欲しいですuserID
。私はほとんどすべてを試しましたが、成功しませんでした。私はそれを達成するためにFacebookのチュートリアルを使用しました。リンクは次のとおりです。Facebookログインボタン
userID
同じログインボタンから取得するのを手伝ってください。
どんな種類の助けもいただければ幸いです。
FB Profile クラス(Facebook SDK 4.0)の getId メソッドを使用します。
Profile profile = Profile.getCurrentProfile();
System.out.println(profile.getFirstName());
System.out.println(profile.getId());
ログインに成功したら、次のコードを呼び出す必要があります。応答で id を使用して、ログインしているユーザーの詳細を取得できます。
Session session = Session.getActiveSession();
Request request = Request.newGraphPathRequest(session, "me", null);
com.facebook.Response response = Request.executeAndWait(request)
新しい Facebook SDK 3.0 を使用する必要があります。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
if (Session.getActiveSession().isOpened()) {
// Request user data and show the results
Request.executeMeRequestAsync(Session.getActiveSession(), new Request.GraphUserCallback() {
@Override
public void onCompleted(GraphUser user, Response response) {
// TODO Auto-generated method stub
if (user != null) {
// Display the parsed user info
Log.v(TAG, "Response : " + response);
Log.v(TAG, "UserID : " + user.getId());
Log.v(TAG, "User FirstName : " + user.getFirstName());
}
}
});
}
}
非推奨の API を使用する@Ketan Mehta ( https://stackoverflow.com/a/17397931/624109 )からの回答に基づいて、次のコードを使用する必要があります。
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
if (Session.getActiveSession().isOpened())
{
// Request user data and show the results
Request.newMeRequest(Session.getActiveSession(), new GraphUserCallback()
{
@Override
public void onCompleted(GraphUser user, Response response)
{
if (null != user)
{
// Display the parsed user info
Log.v(TAG, "Response : " + response);
Log.v(TAG, "UserID : " + user.getId());
Log.v(TAG, "User FirstName : " + user.getFirstName());
}
}
}).executeAsync();
}
}
これらのすべての回答は古い SDK に対するものであるため、SDK 4.0 のコードは次のとおりです。
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
// App code
Profile profile = Profile.getCurrentProfile();
Log.d("facebook",profile.getId());
}
@Override
public void onCancel() {
// App code
Log.d("facebook","failed");
}
@Override
public void onError(FacebookException exception) {
// App code
Log.d("facebook","failed");
}
});
セッションオブジェクトにアクセスできなくなったように見える同じものを探していたので、上記はユーザープロファイルとユーザーIDを取得する新しい方法です。
Facebook グラフ API を使用すると、JSON を返す呼び出しを行うことができます。これは、以下のコードのように JSONObject を使用して Android で解析できます。
JSONObject me = new JSONObject(fb.request("me"));
String id = me.getString("id");
次のコードでユーザー ID を取得できます。
document.getElementById('status').innerHTML =
'Welcome ' + response.name + '!' + "<br />"+
'Your user ID is : ' + response.id;