gpt4 book ai didi

asp.net - Facebook SDK - 无需身份验证即可通过 id 访问公共(public)相册

转载 作者:行者123 更新时间:2023-12-04 18:21:01 25 4
gpt4 key购买 nike

我开发了一个 ASP.NET 网站。它将包含文本文章,其中一些将包含来自我的 Facebook 帐户的图片,超出文本。请注意,我将仅使用我帐户中的公开相册。

所以我创建了一个sql表并绑定(bind)了articles , albumsphotos (实际上是 IDs 的全部)。我已经用过facebook api sdk这是一个很棒的图书馆。

显然,我网站的任何访问者(即使他没有 facebook 帐户)都可以看到文章和 图片 没有访问 facebook 和 未经身份验证通过 Facebook oAuth访问它们。

那么问题来了:

1) 如何获取公共(public)相册中 album id 所包含的照片和 user id 未经身份验证 ? (我不知道,也许我应该使用专辑ID和用户ID以外的其他参数)

2) 如何获取公开相册的属性(名称、id 等)?

最佳答案

如果没有访问 token ,您可以从图形 api 获得的信息很少。
只需将您的浏览器引导至:http://graph.facebook.com/YOU_USER_ID .

您还可以查看User object documentation 中的字段/连接表。 ,在 Permissions 列(第 3 条)中显示“不需要 access_token”,您可以在没有 token 的情况下获得。

如果您想获取自己的其他数据并在您的网站上公开提供,您有两种选择:

  • 使用 server-side authentication flow ,获得一个长生命周期的访问 token (60 天),保存并在接下来的 60 天内使用它来从 facebook 获取您的数据。
    然后,当它过期时,再次进行身份验证过程。
    只有你需要经历它,而不是你的用户,而且每 60 天只有一次。
  • 自己登录,对您的应用进行身份验证,获取所有数据并将其保存在您的数据库中,然后将其呈现给您的用户。
    您需要每隔一段时间更新一次。


  • 编辑

    服务器端身份验证流程指南有一个用 php 编写的示例。
    这是一个简单的示例,并未涵盖所有场景,但它是一个好的开始。

    我已经在 python 和 java 中实现了这个,但它不是很容易共享的东西,因为它跨越多个请求和状态,所以我只描述我认为你应该使用的流程:
  • 在 facebook 中,您可以访问您的 Canvas 应用程序
  • Facebook 将使用您的 Canvas URL
  • 将 POST 放入 iframe
  • 在发布数据中,您将获得 signed request ,对其进行解码并检查它是否具有访问 token ,如果有,请检查它何时过期。如果一切正常,请保存该 token 并且身份验证过程结束,否则:
  • 将用户重定向到 oAuth dialog以及您需要的重定向 URL 和权限。
  • 允许您自己的应用程序后,您将被重定向到带有代码参数(在查询字符串中)的“recirect_uri”。
  • 针对 facebook 服务器交换访问 token 的代码并保存 token 。
  • 然后,您可以将自己重定向到 Canvas 应用程序或停在那里。

  • 这应该是一个长生命周期的访问 token ,然后您可以使用 60 天。

    至于将您的 fb 数据保存在您自己的数据库上,将数据保存在数据库上是一个非常简单的操作,这完全取决于您要保存的数据,您需要如何编码/使用它(json、xml、纯文本) )。

    例如,假设您想要显示您自己的照片,那么在您获得 token (如上所述)后,只需向服务器发出 http 请求即可查询您的照片: https://graph.facebook.com/me/photos?access_token=XXXXXX .
    您应该得到一个 json 编码的结果,对其进行迭代并将每张图片保存为您的数据库中的记录。

    关于asp.net - Facebook SDK - 无需身份验证即可通过 id 访问公共(public)相册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10697015/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com