【问题标题】:Creating Facebook event on behalf of a page from Android client代表来自 Android 客户端的页面创建 Facebook 事件
【发布时间】:2014-03-31 13:24:11
【问题描述】:

我认为这很容易做到,但似乎并非如此。我有一个安卓应用。用户使用 Facebook 登录到此应用程序。我还有一个 Facebook 页面(除了 Facebook 应用程序)。所以,我想从我的 android 应用程序代表我的页面创建一个事件。这是我的工作:

Bundle params = new Bundle();
    params.putString("name", "name");
    params.putString("description", "descr");
    params.putString("location", "loc");
    params.putString("start_time", "properly_formatted_time");
new Request(
        Session.getActiveSession(),                              
        "/" + PAGE_ID + "/events?access_token=" + PAGE_ACCESS_TOKEN,
        params,
        HttpMethod.POST,
        new Request.Callback() {
            public void onCompleted(Response response) {
        }
    ).executeAsync();

我已经生成了具有所有必需权限的长期令牌,如下所述:Long-lasting FB access-token for server to pull FB page info

如果我尝试创建事件,以我自己(FB 页面和应用程序的管理员)身份登录,它可以正常工作。

当我使用不是管理员的某人的帐户时,我收到以下错误:

{HttpStatus: 500, errorCode: 1373019, errorType: 异常, errorMessage:您必须是指定页面的管理员才能执行 请求的操作。}

那么,如何解决这个问题。我搜索了一下,发现了一些类似的问题,比如How to post to a Facebook Page (how to get page access token + user access token),但这些问题要么没有正确答案,要么正在使用"me/account",然后获取access_token,这不是我想做的。

任何帮助将不胜感激。

【问题讨论】:

    标签: java android facebook facebook-graph-api


    【解决方案1】:

    在我看来,除了通过/me/accounts(以该页面的管理员身份登录)获取页面访问令牌,然后将此令牌存储在应用程序本身中之外,别无他法。

    我不太了解的是(所有)用户可以为您的页面创建一个事件。这真的是你想要的吗?

    【讨论】:

    • 是的,我真的希望每个用户都能为我的页面创建一个事件(因为页面本身应该创建事件)。但是,如果我以不同的用户身份登录,则我无法使用“我/帐户”访问我的页面令牌。
    • 是的,没错,所以你需要在你的App中存储Page Access Token
    • 我正在存储它。如问题所述,我创建了持久令牌,代码中的 PAGE_ACCESS_TOKEN 常量就是这个令牌。我可以调试它并查看它永不过期并且拥有所有必要的权限。但是,我仍然收到上述错误。
    • 虽然我对Android FB API没有经验,但我猜“Session.getActiveSession()”是这里的问题。这可以设置为别的吗?
    • 好的,如果您不是页面管理员,则无法在 FB 本身中创建事件。所以,我怀疑通过 Graph API 也是不可能的。谢谢你的时间。
    猜你喜欢
    • 2011-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-15
    • 2011-01-26
    • 2018-10-09
    • 2014-11-15
    相关资源
    最近更新 更多