当前位置: 首页 > 面试题库 >

如何在GraphRequest.newMeRequest上获取用户电子邮件

柯镜
2023-03-14
问题内容

我的Android应用程序中有一个Facebook登录选项,但尝试获取用户的电子邮件失败。在用户登录并添加到Parse.com用户表(具有有效的访问令牌)之后,我请求Facebook用户信息,但仅获取其ID和名称(即使电子邮件已设置为权限之一)
)。

这是我的代码(在我的按钮的OnClickListener内部):

ParseFacebookUtils.logInWithReadPermissionsInBackground(
    getActivity(), Arrays.asList("email", "user_friends"), new LogInCallback() {
        @Override
        public void done(ParseUser user, ParseException err) {
            //err is null

            if (user == null) {
                Log.d(TAG, "Uh oh. The user cancelled the Facebook login.");
            } else {
                GraphRequest.newMeRequest(
                    AccessToken.getCurrentAccessToken(),
                    new GraphRequest.GraphJSONObjectCallback() {
                        @Override
                        public void onCompleted(JSONObject user, GraphResponse response) {

                            Log.d(TAG, "user = " + user.toString());
                            //prints -> user = {"name":"my_fb_name","id":"my_fb_id"}
                        }
                    }
                ).executeAsync();                
           }
       });

问题答案:

我想这与Graph API v2.4中的更改有关,该更改使您有必要指定要从Graph API返回的每个字段。

关于这个

关于您的实际问题,请参阅

  • https://developers.facebook.com/docs/android/graph#userdata

举例说明如何为 GraphRequest

GraphRequest request = GraphRequest.newMeRequest(
        accessToken,
        new GraphRequest.GraphJSONObjectCallback() {
            @Override
            public void onCompleted(
                   JSONObject object,
                   GraphResponse response) {
                // Application code
            }
        });
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,email");
request.setParameters(parameters);
request.executeAsync();


 类似资料:
  • 问题内容: 我正在使用Graph API,但无法弄清楚如何获取登录用户的电子邮件地址。 Graph简介指出:“ Graph API可以提供您通常会以注册表格形式请求的所有基本帐户注册数据的访问权限,包括名称,电子邮件地址,个人资料图片和生日” 很好,但是如何访问该信息? 这是我到目前为止的内容: 问题答案: 获取用户电子邮件地址的唯一方法是在电子邮件字段上请求扩展权限。用户必须允许您看到此内容,并

  • 我在我的系统中使用谷歌广告API PHP库。但是我没有在这里提供的API列表中找到以下2个APIhttps://developers.google.com/google-ads/api/docs/account-management/create-account: API,以查明用户是否已经存在使用电子邮件的谷歌广告帐户?如果找到,则返回其10位数的客户ID。 我在几个网站上见过同样的过程。每当用

  • 问题内容: 我正在为我的Firebase应用程序构建一个管理面板,希望可以更轻松地管理用户。我希望能够通过电子邮件查找用户,然后在必要时将其删除。我了解,如果注册了用户以及他们向其注册了哪个提供程序,则fetchSignInMethods将返回一个值,但是仍然可以查询Authentication树(而非数据库树)以通过电子邮件搜索用户吗?能够从Authentication节点获取与电子邮件相关联的

  • 我正在节点中创建一个系统。js,用户为产品付款,付款后收到一张带有特殊代码的收据,然后可以兑换。 在用户付款后被重定向到成功页面后,我如何获取用户的电子邮件和paymentID(他们用它付款)。 我使用的是“paypal rest sdk”,其他一切都正常工作。 付款授权 谢谢一堆!

  • 我正在尝试在Rails应用程序中使用Ruby中的谷歌Adwords API SDK实现托管账户。 用户流如下所示: 用户点击谷歌账号登录 用户授权我的应用使用谷歌账户信息 然后,用户可以检索托管Adword帐户的列表 我看过Adwords API文档,通过Stackoverflow查看,似乎无法通过Adwords API上的方法调用检索当前登录的用户名和电子邮件。所以我想知道,当我第一次授权我的应

  • IM工作在一个小部件,显示未读电子邮件计数的Gmail和其他电子邮件帐户设置在智能手机。我使用谷歌邮件API为Gmail和它的作品查找,但我没有得到如何与正常的电子邮件应用程序的工作。 我尝试使用帐户管理器获取登录凭据并自己检索信息,但它没有运行,因为我无法获取任何密码。只需验证令牌。我在谷歌上找不到任何关于如何使用普通电子邮件帐户的解决方案,这些帐户不是来自谷歌邮件。 更新:我试图获得密码与此功