Facebook Graph API如何使用访问令牌获取页面ID?

5
对于Facebook上的“用户”,我通过使用以下图形API调用收集他们的用户ID等信息: https://graph.facebook.com/me?access_token=... 这个方法每次都有效。
我的问题是,有没有一种方法可以通过返回的访问令牌获取刚刚授权的页面的页面信息?
我尝试了这个方法,但它不起作用,但这就是我要找的: https://graph.facebook.com/page?access_token=...
如你所知,要发布到“页面”墙上是通过以下方式进行的: https://graph.facebook.com/PAGEID/feed?message=blahblah&access_token=XXXXXXXXXXXXX 如何在不知道ID或页面“用户名”的情况下获取已授权页面的页面ID和其他信息(您必须拥有25个喜欢才能使用)?谢谢stackoverflow社区的任何帮助:)

你的应用程序是否在页面选项卡内? - ifaour
不,我的应用程序是一个托管在SAAS上的合规性和归档网站。 - wakurth
你可以按照这里解释的详细步骤进行操作 - https://dev59.com/Wmsy5IYBdhLWcg3w6yQN#76329303 - Arpit Jain
3个回答

2
我所寻找的答案在这里。你可以使用用户的access_token获取他们的page_access_tokens,根据返回的JSON对象数据,给他们提供使用这些访问令牌发布到这些页面的选项。

1

当应用程序安装在页面上时,没有回调。但是,如果用户通过选项卡 iFrame 使用您的应用程序,则可以从 signed_request 获取该页面的 ID。您可以将此信息作为自己的用户会话的一部分进行维护,并根据需要使用它。

签名请求到选项卡 iFrame 的内容类似于以下内容(PHP print_r 的输出):

stdClass Object
(
    [algorithm] => HMAC-SHA256
    [issued_at] => xxxxxxxxxx
    [page] => stdClass Object
        (
            [id] => FAN_PAGE_ID // target page id
            [liked] => 1        // is the user a fan
            [admin] =>          // is the user an admin
        )

    [user] => stdClass Object
        (
            [country] => ie
            [locale] => en_GB
            [age] => stdClass Object
                (
                    [min] => 21
                )

        )

)

更多信息请参见: http://developers.facebook.com/docs/authentication/signed_request/


您可能还想查看管理页面权限

此外,请参见: http://developers.facebook.com/docs/reference/api/

页面登录

您可以通过请求“manage_pages”权限来模拟由您的用户管理的页面。

一旦用户授予您的应用程序“manage_pages”权限,“帐户”连接将为当前用户管理的每个页面生成一个access_token属性。这些access_token可以用于代表页面进行调用。用户授予您的应用程序的权限现在也适用于他们的页面。


我认为我的问题没有被正确阅读。对于用户,当他们通过访问令牌授权我的应用程序后,我可以立即获取他们的Facebook userID。如果我的应用程序获得了“页面”的批准而不是用户,并且该页面没有附加任何“用户”帐户,则我无法通过我所知道的任何方法获取PageID,他们只会传回一个“access_token”和“code”查询字符串参数。如果“code”参数可以解码以获取此类信息,则我将使用它,我只是不知道这是可能的...请告诉我现在我的问题是否更有意义。 - wakurth
只有用户可以授权应用程序。 应用选项卡只能安装在页面上。 获取页面ID的唯一方法是通过传递给安装在该页面上的选项卡iFrame的signed_request。 - jBit
我的页面上没有iframe。我会在Facebook上将它们重定向到“允许”页面,并在新标签页中打开,当他们点击允许时,它会重定向到一个处理收集信息的页面。在这种情况下,没有用户参与。它只是登录页面,没有用户附加到管理它。他们用来登录的电子邮件实际上并没有与用户的Facebook帐户相关联。因此,“页面”实际上是授权我的应用程序。 - wakurth
由于在使用FQL获取页面ID时没有用户ID可供使用,且签名请求中也没有信息...所以我认为对于没有“用户”附加到页面上的页面来说,不可能使用FB画布外的应用程序。 - wakurth
使用Facebook应用程序需要实际用户进行身份验证。页面无法使用应用程序-它们只能托管选项卡。如果不需要身份验证,则任何人都可以使用Facebook应用程序。 - jBit

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接