URL динамического объекта OpenGraph не работает - PullRequest
6 голосов
/ 04 февраля 2012

Я пытаюсь опубликовать открытый график активности.На самом деле он работает со статическим .html файлом.Но если я указываю URL с параметрами URL, я получаю сообщение об ошибке.Поверьте, исходный код на обеих страницах одинаков на 100%.

# Dynamic call
/me/somesandbox:drive?car=http://www.domain.com/object/?og:type=somesandbox:car&og:title=Some%20car

# Static call
/me/somesandbox:drive?car=http://www.domain.com/static_car.html

Ошибка:
"Объект по URL-адресу" http://www.domain.com/object/?og:type' типа'website' недействителен, потому что не указано обязательное свойство 'og: type' типа 'string'. "

Если вы посмотрите на ошибку, вы увидите, что Facebook этого не сделалполучить весь URL.Параметры отсутствуют, верно.Пожалуйста, помогите!

Ответы [ 3 ]

4 голосов
/ 04 февраля 2012

URL объекта Open Graph, который вы пытаетесь использовать, это?

http://www.domain.com/object/?og:type=somesandbox:car&og:title=Some%20car

Полагаю, поскольку Facebook уже анализирует : двоеточия символов для имен действий (т.е. graph.facebook.com/me/recipebox:cook?recipe=), их может быть небезопасно использовать в качестве собственных параметров.

Также может возникнуть некоторая путаница: насколько я знаю, свойства объектов Open Graph не передаются в URL-адресах, подобных этому og:title=Some%20car. Они фактически не закодированы на странице, на которую указывает URL, через метатеги open graph : <meta property="og:title" content="Some car" />. Поэтому, если вы пытаетесь установить свойства объекта с помощью URL-адреса, он не будет работать.

Не забудьте использовать Lint Debug Tool для проверки URL-адресов ваших объектов Open Graph!

Вы, вероятно, знаете это, и просто используете параметры GET URL для установки тегов meta. Как то так?

<meta property="og:title" content="<? echo $_GET['og:title'] ?>" />

Если это так, попробуйте без двоеточий :. есть некоторые споры о том, безопасны ли они в URL-адресах, но если Facebook их тоже анализирует, будет безопаснее просто их пропустить, например:

// http://www.domain.com/object/?ogtype=somesandbox:car&ogtitle=Some%20car
<meta property="og:type" content="<? echo $_GET['ogtype'] ?>" />
<meta property="og:title" content="<? echo $_GET['ogtitle'] ?>" />

Я не проверял это, просто дал несколько советов, чтобы попробовать. Удачи!

0 голосов
/ 04 февраля 2012

Понял.@thaddeusmt: уже был на правильном пути.

Что это очень важно - конечно, это так - вы должны кодировать UURIComponent (yoururl? with = vars)

Решено

Если вы передадите свой URL следующим образом:

/ me / somesandbox: drive? Car = http://www.domain.com/object/?og:type=somesandbox:car&og:title=Some%20car

Обязательно закодируйте объект-url.Например, с Javascript

encodeURIComponent(http://www.domain.com/object/?og:type=somesandbox:car&og:title=Some%20car)
0 голосов
/ 04 февраля 2012

Facebook имеет этот замечательный инструмент, чтобы узнать, что видит Facebook: https://developers.facebook.com/tools/debug просто введите URL-адрес и наблюдайте за отладкой.

Не забудьте, эти метатеги должны быть размещеныв разделе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...