- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Facebook SDK 4.16.1
通过使用 Profile
我可以获得 first name
, last name
, name
and id
我的代码是这样的
public class LoginActivity extends Activity {
String id, fname, lname, email, name, gender, locale, verified;
private CallbackManager callbackManager;
private AccessTokenTracker accessTokenTracker;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.loginactivity);
FacebookSdk.sdkInitialize(getApplicationContext());
callbackManager = CallbackManager.Factory.create();
accessTokenTracker = new AccessTokenTracker() {
@Override
protected void onCurrentAccessTokenChanged(AccessToken oldToken, AccessToken newToken) {
}
};
LoginButton loginButton = (LoginButton)findViewById(R.id.login_button);
loginButton.setReadPermissions(Arrays.asList(Constants.FACEBOOK_PERMISSIONS));
FacebookCallback<LoginResult> callback = new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
AccessToken accessToken = loginResult.getAccessToken();
Profile profile = Profile.getCurrentProfile();
FB_TOKEN=loginResult.getAccessToken().getToken();
GraphRequest request = GraphRequest.newMeRequest(
loginResult.getAccessToken(),
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(
JSONObject object,
GraphResponse response) {
// Application code
response.getError();
Log.e("JSON:", object.toString());
try {
email = object.getString("email");
gender = object.getString("gender");
locale = object.optString("locale");
verified = object.optString("verified");
} catch (JSONException e) {
e.printStackTrace();
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,link,birthday,first_name,last_name,email,gender,verified,locale");
request.setParameters(parameters);
request.executeAsync();
id = profile.getId();
fname = profile.getFirstName();
lname = profile.getLastName();
name = profile.getName();
nextActivity(profile);
Toast.makeText(getApplicationContext(), "Logging in...", Toast.LENGTH_SHORT).show();
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException e) {
}
};
loginButton.registerCallback(callbackManager, callback);
}
}
我的常量看起来像这样
public static final String[] FACEBOOK_PERMISSIONS = new String[] {
"public_profile",
"user_friends",
"email" };
我正在尝试获取电子邮件、性别、区域设置以及是否已经过验证。我将如何获得其他信息?对于 Profile
更新
我像这样更新我的GraphRequest
GraphRequest request = GraphRequest.newMeRequest(
loginResult.getAccessToken(),
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(
JSONObject object,
GraphResponse response) {
// Application code
response.getError();
Log.e("JSON-RESULT:", object.toString());
JSONObject jsonObject = null;
try {
jsonObject = new JSONObject(object.toString());
email = jsonObject.getString("email");
gender = jsonObject.getString("gender");
locale = jsonObject.getString("locale");
verified = jsonObject.getString("verified");
Log.e(TAG, email + " This is the email");
} catch (JSONException e) {
e.printStackTrace();
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,link,birthday,first_name,last_name,email,gender,verified,locale");
request.setParameters(parameters);
request.executeAsync();
在我的 Logcat
中,它显示我正确设置了电子邮件和其他设置,但是当您放置 breakpoints
时它不会进入 GraphRequest
,因此我的全局 variable
电子邮件仍然为空。即使在 Log.e("JSON:", object.toString());
和 Log.e(TAG, email + "This is the email");
它显示我得到并设置了值。我想知道如何获取 Bundle
的值?
最佳答案
尝试使用下面的代码获取其他信息.....
private FacebookCallback<LoginResult> mFacebookCallback = new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
// Log.d("Login", "onSuccess");
GraphRequest.newMeRequest(
loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject me, GraphResponse response) {
if (response.getError() != null) {
// handle error
} else {
email = me.optString("email");
String id = me.optString("id");
String email=me.optString("email");
String name= me.optString("name");
String gender= me.optString("gender");
String verified= me.optBoolean("is_verified") + "";
}
}
}).executeAsync();
}
@Override
public void onCancel () {
// Log.d("Login", "onCancel");
}
@Override
public void onError (FacebookException e){
// Log.d("Login", "onError " + e);
}
};
关于android - 无法从 GraphRequest Facebook 获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40078479/
我看了几个关于这个问题的帖子,但没有找到解决方案。 facebookLoginButton = (LoginButton) findViewById(R.id.facebook_login_
我希望用户能够使用 Facebook SDK 注册我的 Android 应用程序。为了获取他们的信息,我正在执行具有“email”和“public_profile”权限的 GraphRequest。根
我正在使用 Facebook SDK 通过 Swift 3 登录 iOS。 这是我的代码。问题是没有返回任何值。 import UIKit 类 View Controller :UIViewContr
我已经创建了一个应用程序,它具有使用 Facebook 登录/注册的选项。该功能对某些配置文件运行良好,但会导致其他配置文件出现问题。我想从用户的个人资料中获取以下数据: id,name,email,
我正在使用 Facebook SDK 4.16.1 通过使用 Profile 我可以获得 first name, last name, name and id 我的代码是这样的 public clas
Facebook 最近将他们的 SDK 更新到 V 2.0,实际上我的应用程序必须升级才能调用 v2.0 或更高版本。一些修改是 *Session 被 Accesstoken 取代。 到目前为止,我可
我的 Android 应用程序中有一个 Facebook 登录选项,但我试图获取用户的电子邮件失败。用户登录并添加到 Parse.com 用户表(使用有效的访问 token )后,我请求 Facebo
我正在尝试按照此处提供的入门示例进行操作:https://components.xamarin.com/gettingstarted/facebookios 以下 GraphRequest 在主线程中
尝试让我的 Android 应用程序获取登录 Facebook 用户的电子邮件、生日和位置。可以成功检索前两个字段,但图形 API 的响应中缺少位置,我不明白为什么。 我正在使用这些权限登录: Log
我正在制作需要从 Facebook 获取数据的应用程序。为了避免重复代码,我决定为 GraphRequest 创建一个类。 public class FacebookRequest { private
我正在尝试使用 Facebook API 允许用户登录我的应用程序,登录操作成功完成,并且我获得了访问 token ,但是当我使用 GraphRequest 获取用户信息时,它的响应和对象返回 nul
我正在使用新的 Facebook 图表请求: let parameters = ["fields": "id, name, gender"] let nextreque
我一直在尝试完全遵循 Facebook 的文档,但无法理解为什么我的代码不起作用,即使它与文档中的代码完全一样。我已经在我的应用程序上登录 Facebook,但我需要获取个人资料数据。 这是我的功能。
我用这段代码上传一张图片: FBSDKGraphRequest(graphPath: "me/photos", parameters: params as [NSObject : AnyObj
我几乎 95% 的用户都顺利通过了登录过程,但有时我在尝试时遇到此异常:editor.putString("fbId", id)。为什么?如果 onSuccess 被调用,我假设该对象已经被填充,那么
我正在尝试使用 React Native Facebook SDK 获取高分辨率图片,但默认图像质量很差。它是 50x50 和非常低的分辨率。 请求: new GraphRequest('/13512
我正在编写一个 Android 应用程序,我需要用户使用 Facebook 登录。 登录工作正常,我也得到了一张个人资料图片,但图片的分辨率非常低 - 大约 50 px x 50 px。有没有可能得到
我正在使用来自 react-native-fbsdk 的 GraphRequest 从我的应用程序发布到 FB。具体来说,我正在尝试发布指向外部托管的 mp4 视频的链接,因此网址为 https://
我最近在我的项目中将我所有的 pods 和 swift 语言更新为 Swift 5 并且收到了大量错误消息,我已经慢慢解决了这些错误消息。 然而,我正在努力解决这个问题,Facebook GraphR
我需要从 facebook 获取 age_range。 当我在我的 GraphRequest.newGraphPathRequest 中使用 /me?fields=age_range 时,出现错误。
我是一名优秀的程序员,十分优秀!