如何发布 Facebook 用户的签到

发布于 2024-12-19 05:30:43 字数 132 浏览 2 评论 0原文

我正在使用 Appcelerator 和 Facebook API 模块中的构建构建一个 iOS 应用程序。我需要找到一种代表用户发布签到的方法。用户必须能够在某个位置和/或特定 FB 页面签到。这可能吗?我可以发布状态消息,但无法添加位置(地点)。

I am building an iOS app using Appcelerator and the build in Facebook API module. I need to find a way to publish checkin on the behalf of the user. The user must be able to checkin at at location and / or a specific FB page. Is this possible? I can publish status messages but I cannot add a location (place).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夜未央樱花落 2024-12-26 05:30:43

这是可能的 - 您需要使用 Facebook 的 Graph API,可以通过 Titanium.Facebook.requestWithGraphPath 方法访问该 API。 这篇博文描述了如何在 iOS 上完成此操作,但工作流程是相同的 - 尽管作者说 Facebook 的 API 最近发生了变化,所以 YMMV - 我找不到Facebook 中的任何明确文档开发者资源。

  • 要代表用户发布签到,您需要获得用户授予您的应用程序的“publish_checkins”扩展权限
  • 获取用户设备的纬度和经度
  • 通过向用户请求来查找用户所在位置附近的地点列表Graph API
  • 允许用户选择地点
  • 向 Facebook Graph API 发送 POST 请求,路径为“me/checkins”,其中包含 PlaceID、用户坐标、可选标签(朋友 ID)和状态消息

以下是操作方法您需要向用户请求适当的权限:

Titanium.Facebook.permissions = ['publish_checkins'];
Titanium.Facebook.authorize();

以下是您可以使用的示例 URL(使用 Titanium.Network.createHTTPClient 发出 GET 请求)来查找地点列表

https://graph.facebook.com/search?q=coffee&type=place¢er=37.76,122.427&distance=1000

然后在表格视图中列出这些地点,然后当用户点击其中一个时,您会通过 POST 来创建签到,假设您在适当命名的变量中拥有该地点的 ID 及其坐标:

var data = {
    place: placeID
    coordinates: {
        latitude: latitude,
        longitude: longitude
    }
    message: message,
    tags: [
        // tagged users (optional)
    ]
};


Titanium.Facebook.requestWithGraphPath('me/checkins', data, 'POST', function(e) {
    if (e.success) {
        alert("Success! Returned from FB: " + e.result);
    } else {
        if (e.error) {
            alert(e.error);
        } else {
            alert("Unknown result");
        }
    }
});

您可能需要调整发送到 Facebook 的属性,如果API 已更改,但总体方法是正确的。

It is possible - you need to use Facebook's Graph API, which is accessible the Titanium.Facebook.requestWithGraphPath method. This blog post describes how this is done on iOS, but the workflow is the same - although the author says that Facebook's API has changed recently, so YMMV - I couldn't find any explicit documentation in Facebook's developer resources.

  • To publish a checkin on behalf of the user, you need to have the “publish_checkins” extended permission granted to your app by the user
  • Get the latitude and longitude of your user’s device
  • Find a list of places near the user's location by requesting them from the Graph API
  • Allow the user to pick a place
  • Send a POST request to the Facebook Graph API with path “me/checkins” containing the PlaceID, user coordinates, and optional tags (friend IDs) and a status message

Here's how you'd request the appropriate permission from the user:

Titanium.Facebook.permissions = ['publish_checkins'];
Titanium.Facebook.authorize();

Here's an example URL that you'd use (using Titanium.Network.createHTTPClient to make a GET request) to find a list of places

https://graph.facebook.com/search?q=coffee&type=place¢er=37.76,122.427&distance=1000

Then list those places in a table view, and when the user taps one, you POST to create a checkin, assuming you have the ID of the place, and its coordinates, in appropriately named variables:

var data = {
    place: placeID
    coordinates: {
        latitude: latitude,
        longitude: longitude
    }
    message: message,
    tags: [
        // tagged users (optional)
    ]
};


Titanium.Facebook.requestWithGraphPath('me/checkins', data, 'POST', function(e) {
    if (e.success) {
        alert("Success! Returned from FB: " + e.result);
    } else {
        if (e.error) {
            alert(e.error);
        } else {
            alert("Unknown result");
        }
    }
});

You may need to tweak the properties that you send to Facebook if the API has changed, but the general approach is correct.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文