gpt4 book ai didi

facebook - 授权后如何正确重定向到facebook页面标签URL

转载 作者:行者123 更新时间:2023-12-02 20:07:27 25 4
gpt4 key购买 nike

我更改了 Facebook 页面选项卡应用程序请求权限的方式。

我之前在 FB 对话框中使用 javascript 方法,现在我使用重定向方法(用户被重定向到 FB 页面,在该页面中询问权限,然后重定向回 facebook 页面选项卡)。

The reason of the change is that I believe this approach will present less bugs and issues than using the javascript dialogs.

使用重定向方法时,我需要指定用户在提供权限后将重定向的 URL。我希望这个 url 是安装了应用程序的 facebook 页面选项卡的 url。

在构建重定向网址时,我知道当前的 page_id 和我的 app_id。有了这些信息,我需要构建 Facebook 页面选项卡 URL,它应该如下所示:

https://www.facebook.com/pages/PAGE-SLUG/ {#APP_ID}?sk=app_{#APP_ID}

问题是我不知道什么是 PAGE-SLUG。我使用上面的 url 运行的测试(使用 PAGE-SLUG 作为任何东西)最终重定向到正确的 URL。但是,由于知道 Facebook 是一个非常不稳定的平台,我想知道是否有更好的方法来构建此重定向网址。

编辑:上述方法有问题。当 facebook 用户默认不使用 SSL 时,重定向会丢失 SSL 协议(protocol)并使用 HTTP 链接。

最佳答案

其实很简单,你可以像这样用 PHP 调用 Graph API:

$facebook->api("/{PAGE_ID}"); 
// change {PAGE_ID} to the page id you are redirecting back to

返回值是一个 json 数组,其中包含“link” -> 这就是您要查找的 URL :-)

返回示例:

{
"id": "XXXXXXXXX",
"name": "My Demo Page",
"picture": "",
"link": "https://www.facebook.com/pages/My-Demo-Page/XXXXXXXXX",
"likes": 123456,
"category": "Product/service",
"can_post": true,
"type": "page"
}

您还可以通过页面名称进行查询,如果您知道的话,例如:

通过以下方式查询 Graph API:

$facebook->api("/coca-cola"); 

将导致:

{
"id": "40796308305",
"name": "Coca-Cola",
"picture": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-snc4/174560_40796308305_2093137831_s.jpg",
"link": "https://www.facebook.com/coca-cola",
"likes": 40680159,
"cover": {
"cover_id": "10150682306963306",
"source": "https://fbcdn-sphotos-a.akamaihd.net/hphotos-ak-snc7/s720x720/416803_10150682306963306_40796308305_9337341_812683101_n.jpg",
"offset_y": 0
},
"category": "Food/beverages",
"is_published": true,
"website": "http://www.coca-cola.com",
"username": "coca-cola",
"founded": "1886",
"description": "Created in 1886 in Atlanta, Georgia, by Dr. John S. Pemberton, Coca-Cola was first offered as a fountain beverage at Jacob's Pharmacy by mixing Coca-Cola syrup with carbonated water. \n\nCoca-Cola was patented in 1887, registered as a trademark in 1893 and by 1895 it was being sold in every state and territory in the United States. In 1899, The Coca-Cola Company began franchised bottling operations in the United States. \n\nCoca-Cola might owe its origins to the United States, but its popularity has made it truly universal. Today, you can find Coca-Cola in virtually every part of the world.",
"about": "The Coca-Cola Facebook Page is a collection of your stories showing how people from around the world have helped make Coke into what it is today.",
"location": {
"latitude": -33.816989983333,
"longitude": 150.84844081667
},
"can_post": true,
"checkins": 80,
"talking_about_count": 297576,
"type": "page"
}

编辑:

更清晰的解释:

  1. 使用当前页面 ID 调用 Graph API。
  2. 如果结果不为假,则redirect_uri将是链接从通话中返回。否则,redirect_uri 应为 yourdomain.com/middle-page.php?page_id=XXX
  3. 如果用户随后接受申请并且redirect_uri是中间页面,然后,您再次调用 Graph API,但这一次,您使用收到的访问 token 来自 Facebook 。现在您应该拥有真实的页面网址,并且可以添加任何其他内容您需要的详细信息(例如?sk_app=APP_ID)

根据 Facebook 自己的 documentation ,目前尚不清楚如果用户决定不接受该申请会发生什么。我认为用户将重定向回redirect_uri,然后您可以检查signed_request中是否有“user_id”,但我不是100%确定... 创建一个简单的应用程序演示并检查:-)

关于facebook - 授权后如何正确重定向到facebook页面标签URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9786026/

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