无法通过图形 API 手动输入事件地址

Posted

技术标签:

【中文标题】无法通过图形 API 手动输入事件地址【英文标题】:Cannot manually enter an address on event through graph API 【发布时间】:2013-03-11 21:47:36 【问题描述】:

更改我们的应用程序以使用新的事件时区迁移后,我无法再显示事件地址。我曾经用街道、城市、州、邮编和国家来传递场地对象。然后我也会直接将这些信息放在事件对象中(因为即使 api 说它在那里,场地也从来没有工作过)。

从“从页面创建事件”的图形 api 文档看来,他们已经取消了场地(并直接输入地址信息),现在只有 location 和 location_id。我需要能够手动输入地址信息并将其显示在活动中,因为我不能保证我们的客户场所存在现有的 Facebook 位置。这还有可能吗?

var eventData = 
                name: "<%= Me.EventName %>",
                page_id: "<%= Me.CurrentAcct.FacebookPageID %>",
                description: "<%= Me.EventDescription.Trim() %>",
                start_time: starttime,
                location: "<%= abc.Web.Script.Serialization.javascriptString.QuoteString(Me.Venue.Title) %>",
                street: "<%= abc.Web.Script.Serialization.JavaScriptString.QuoteString((Me.Venue.Address1.Trim() + " " + Me.Venue.Address2.Trim()).Trim()) %>",
                city: "<%= abc.Web.Script.Serialization.JavaScriptString.QuoteString(Me.Venue.City) %>",
                state: "<%= Me.Venue.State %>",
                zip: "<%= Me.Venue.Zip %>",
                country: "<%= Me.Venue.TwoLetterISORegionName %>",
                privacy: "<%= Me.Privacy %>",
                ticket_uri: "<%= PublicPageHelpers.BuyTicketsURL(CurrentAcct.Key, objEvent.ID, String.Empty, LinkTypes.Absolute) %>"
           

【问题讨论】:

【参考方案1】:

因此,在浪费了几天时间试图弄清楚如何在活动页面上将位置显示为字符串之后,这就是我学到的。不要将街道、城市、州、邮编、国家传递到事件对象或场地对象中。如果你这样做了,facebook 将尝试使用他们自己的 Venue 位置并将其绘制在地图上,这会导致只有在该位置不存在时才会显示 City。 facebook 也不会显示您传入的位置字符串,而只会显示地图。因此,只要您提供位置字段而不将地址传递到其他地方,您就可以在活动页面上将其显示为字符串。

var eventData = 
                name: "<%= Me.EventName %>",
                page_id: "<%= Me.CurrentAcct.FacebookPageID %>",
                description: "<%= Me.EventDescription.Trim() %>",
                start_time: starttime,
                location: "<%= abc.Web.Script.Serialization.JavaScriptString.QuoteString(Me.Venue.Title) +"\r\n"+ abc.Web.Script.Serialization.JavaScriptString.QuoteString((Me.Venue.Address1.Trim() +" "+ Me.Venue.Address2.Trim()).Trim()) +"\r\n"+ abc.Web.Script.Serialization.JavaScriptString.QuoteString(Me.Venue.City) +", "+ Me.Venue.State +" "+ Me.Venue.Zip %>",
                privacy: "<%= Me.Privacy %>",
                ticket_uri: "<%= PublicPageHelpers.BuyTicketsURL() %>"
           

【讨论】:

【参考方案2】:

[…] 现在只有 location 和 location_id。我需要能够手动输入地址信息并将其显示在活动中,因为我不能保证我们的客户场所存在现有的 Facebook 位置。这还有可能吗?

是的 - 使用您提到的第一个字段,location

它的类型只是string,你可以在那里传递任何你喜欢的东西。 (虽然我不知道应用了什么字符限制,但我认为对于“普通”地址来说应该足够了。)

【讨论】:

我在活动页面上看不到位置显示。 (它在时区迁移更改和添加 buytickets_url 之前发生。) 另外,当我将地址作为位置传递,然后使用图形浏览器查看事件数据时,它会将我放入位置字段的所有数据仅替换为城市,并添加一个 location_id为那个城市。

以上是关于无法通过图形 API 手动输入事件地址的主要内容,如果未能解决你的问题,请参考以下文章

如何通过事件 ID 获取 Facebook 事件?

Facebook 图形 API 事件

假设我无法通过图形 api 获取全局用户 ID,如何使用应用程序打开 facebook url

js 触发select onchange事件代码

使用图形 api 获取 facebook 事件源

Facebook:可以使用图形 API 设置事件的描述和图像吗?