如何在 Android 中获取 Facebook 上的所有照片

2024-01-11

我正在开发一个应用程序,其中我将 Facebook SDK 用于不同的目的。目前我已经实现了通过Facebook登录。现在我的下一个任务是获取登录用户的所有照片并将其显示在网格中。我正在关注 Facebook 官方开发者网站作为此任务的参考。以下是我用来获取用户照片的代码。

    new Request(
            Session.getActiveSession(),
            "/me/photos",
            getRequestParameters(),
            HttpMethod.GET,
            new Request.Callback() {
                public void onCompleted(Response response) {
                    /* handle the result */
                    Log.d("Response ","Response " + response);
                    mpBar.setVisibility(View.GONE);
                }
            }
        ).executeAsync();

private Bundle getRequestParameters() 
    {
        String accessToken = LoginSigbUpCustomerNew.mytoken;
           Bundle parameters = new Bundle(1);
           parameters.putString("access_token", accessToken);
           return parameters;
    }

在这里,我收到这样的回复:-

{Response:  responseCode: 200, graphObject: GraphObject{graphObjectClass=GraphObject, state={"data":[]}}, error: null, isFromCache:false}

我不明白为什么数据数组是空的。我还请求用户的 user_photos 权限。那么问题出在哪里呢。 我是这个 Facebook SDK 的新手,不知道如何解决这个问题。如果有人能帮助我那就太好了。

提前致谢。


根据 Facebook SDK 的文档,您请求照片的代码很好,但是我认为您忘记向登录的用户(在本例中为您)请求许可。

从 Facebook SDK 文档复制:A user access token with user_photos permission is required to see all photos that person is tagged in or has uploaded.

以下链接为您提供了有关如何将访问令牌添加到登录按钮的小教程:https://developers.facebook.com/docs/android/login-with-facebook/v2.2?locale=en_GB#step3 https://developers.facebook.com/docs/android/login-with-facebook/v2.2?locale=en_GB#step3

在你的情况下,它会是(代码片段仅适用于活动,适用于片段:单击上面的网址并按照那里的教程进行操作。非常简单):

...
LoginButton authButton = (LoginButton) findViewById(R.id.ID_OF_YOUR_LOGIN_BUTTON);
authButton.setReadPermissions(Arrays.asList("user_photos"));
...

在您的重写 onCreate 方法中。


方法二:

...
Session session = Session.getActiveSession();
if (!session.isOpened() && !session.isClosed()) {
    session.openForRead(new Session.OpenRequest(this)
        .setPermissions(Arrays.asList("user_photos"))
        .setCallback(YOUR_CALLBACK_CLASS_VARIABLE));
} else {
    // Open an active session. Basically happens when someone is already logged in.
}
...

在调用请求所有用户照片之前,您只需在用户尚未登录时打开一个新请求即可。这可能发生在View.OnClickListener类的一个Button看来您不是 Facebook 的 LoginButton。

YOUR_CALLBACK_CLASS_VARIABLE是你的类实现Session.StatusCallback。我非常确定您知道它是什么以及它的作用。


方法三:

...
    Session.NewPermissionsRequest newPermissionsRequest = new Session
      .NewPermissionsRequest(this, Arrays.asList("user_photos"));
    session.requestNewReadPermissions(newPermissionsRequest);
...

当用户已经登录时(所以用户登录后)并且您希望向用户请求额外的权限以访问他的照片或其他内容。顺便说一句,这一切都写在 Facebook SDK for Android 的文档中。

了解更多信息:https://developers.facebook.com/docs/android/login-with-facebook/v2.2?locale=en_GB#step3 https://developers.facebook.com/docs/android/login-with-facebook/v2.2?locale=en_GB#step3

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Android 中获取 Facebook 上的所有照片 的相关文章

  • gradle更新后无法找到方法(无法编译项目)

    我尝试将项目中的 gradle 版本更新为 4 1 milestone 1 以下这些说明 https developer android com studio build gradle plugin 3 0 0 migration html
  • 检查 WebView 元素时的 UiAutomator 错误

    I have recently started automation testing in android and was using UiAutomator tool for inspecting UI elements Surprisi
  • Android短音的正确播放方法?

    我正在创建一个应用程序 屏幕上将有多个图像 这些图像将是按钮 点击时会播放短促的声音 我对此进行了研究 只能找到我当前用来播放声音的方法 这似乎根本没有响应 我希望声音能够快速播放并且能够响应多次快速点击 我不确定这在 Android 中是
  • Cheesesquare:enterAlways 会产生错误的布局

    Adding enterAlways到 Cheesesquare 演示的滚动标志
  • Android Studio:XML 布局中的“包装在容器中”

    编辑 XML 布局文件时 Eclipse 有一项称为 包裹在容器中 的功能 重新格式化 gt Android gt 可让您选择一个或多个视图并在其周围包裹您选择的布局 Android Studio中有类似的东西吗 目前正在实施中 问题 69
  • 如何正确释放Android MediaPlayer

    我正在尝试向我的 Android 应用程序添加一个按钮 当点击该按钮时它会播放 MP3 我已经让它工作了 但没有办法释放 mediaPlayer 对象 因此即使在我离开活动后它仍然会继续播放 如果我在react 方法之外初始化MediaPl
  • 将现有 VARCHAR 列与 Room 结合使用

    我正在尝试将现有的数据库与 Android Room 一起使用 但是 我的一个表有一个 VARCHAR 列 Room 似乎只支持 TEXT 不支持 VARCHAR 而且 sqlite 不允许修改列类型 那么 有没有办法使用Room中现有的带
  • Android 初学者:Android gridview 中的触摸事件

    我正在使用以下代码来使用 gridview 执行操作 稍作修改http developer android com resources tutorials views hello gridview html http developer a
  • 用户验证 Facebook 后未调用应用程序打开 Url 方法

    我已将 ios 应用程序中的 facebook 升级到 3 0 并使用提供的代码https developers facebook com docs howtos login with facebook using ios sdk http
  • 以编程方式将文本颜色设置为主要 Android 文本视图

    如何设置我的文本颜色TextView to android textColorPrimary以编程方式 我已经尝试了下面的代码 但它将 textColorPrimary 和 textColorPrimary Inverse 的文本颜色始终设
  • ExoPlayer2 - 如何使 HTTP 301 重定向工作?

    我开始使用 ExoPlayer 来传输一些音频 一切都很顺利 直到我遇到一个带有 301 永久移动 重定向的 URL ExoPlayer2 默认情况下不处理该问题 我已经看过这个线程 https github com google ExoP
  • 在 android 中建立与 MySQL 的池连接

    我需要从我的 Android 应用程序访问 MySQL 数据库 现在所有的工作都通过 DriverManager getConnection url 等等 但我必须从多个线程访问数据库 所以我必须使用连接池 问题1 是 com mysql
  • okhttp 获取失败响应

    我已经在我的 android 客户端中实现了 okhttp 来进行网络调用 当我收到失败响应时 我会收到失败代码以及与该代码相关的文本作为消息 但我没有收到服务器发送给我的自定义失败响应 在我实施的代码中的失败响应中 我收到的消息只是 错误
  • Android 中如何通过彩信发送图片?

    我正在开发多媒体应用程序 我正在通过相机捕获一张图像 并希望将该图像和文本发送到其他号码 但我不知道如何通过彩信发送图像 MMS 只是一个 http post 请求 您应该使用执行请求额外的网络功能 final ConnectivityMa
  • Android 2.3 模拟器在更新位置时崩溃

    我正在使用 Eclipse 编写和调试 Android 应用程序 我需要做的事情之一是更新设备的位置 因此我尝试使用模拟器控制窗口中的位置控制面板 在 手动 选项卡上 我选择 十进制 输入有效的纬度和经度 然后单击 发送 不幸的是 接下来发
  • Android 如何将总天数准确更改为年、月、日?

    我正在做一个应用程序 该应用程序与根据给定的生日日期输入获取一个人的年龄有关 为此 我从下面的代码中获取从该日期到当前日期的总天数 String strThatDay 1991 05 10 SimpleDateFormat formatte
  • Android 中的处理程序与异步调用

    目前我正在使用处理程序来调用 Web 服务方法以使其在后台运行 问题是它需要更多的时间来给出响应 在性能方面似乎更昂贵 现在我计划使用异步调用 哪一个是最好的 Android 中的处理程序和异步调用有什么区别 请帮我想出一个最好的解决方案
  • 如何检查 Android 中的同步设置

    我正在构建一个 Android 应用程序 我需要检查设备中注册的每个单独帐户的同步设置 我知道我可以通过 ContentResolver 类来做到这一点 但我遇到了一些问题 我已设法获取设备上所有帐户的列表 但我不知道在运行时从哪里获取特定
  • 错误:(23, 13) 无法解决:com.google.android.gms:play-services:11.2.0“安装存储库和同步项目”不起作用

    我正在尝试在我的 Android 应用程序中获取位置并更新到服务器 这是我的 Gradle 代码 我在这里包含了compile com google android gms play services 11 2 0 这条线是从文档中 htt
  • Dagger 2 中“HasFragmentInjector”的实际用法是什么

    我之前已经实现了 dagger2 v2 2 但现在他们也添加了 dagger android 部分 所以我正在用它创建示例项目 我知道旧的方法论 Provide and Modules and 成分等注释 但从 Dagger 2 8 开始

随机推荐