OAuthException 3502 даже при публикации правильного типа объекта на графике Facebook - PullRequest
0 голосов
/ 29 февраля 2012

Я прочитал несколько постов, где люди указывают неправильный og: type или og: url в своих экземплярах объекта, и это приводит к этой ошибке. Это другая ситуация.

У меня есть одно приложение, которое отлично работает. Он определяет действие «любовь», которое работает с объектом «предмет», и производит, например, «Джо любит музыку» просто отлично. Его пространство имен приложений - «промо».

В целях тестирования я создал 2-е приложение, почти идентичное, с теми же определениями действий и объектов. Поскольку приложения не могут использовать одно и то же пространство имен, я назначил пространство имен этого приложения для «promoTest». И я сделал свой код настраиваемым так, чтобы объекты, созданные этим вторым приложением, отображались как правильный og: type = promoTest: item.

Итак, подведем итог

  • приложение 1 создает объекты типа og: type 'promo: item'
  • приложение 2 создает объекты og: type 'promoTest: item'.
  • Оба префикса типов соответствуют соответствующим пространствам имен их приложений.
  • Объекты, созданные в обоих этих приложениях, прекрасно работают в отладчике объектов. 0 ошибок.

Проблема в том, что приложение 1 работает отлично, а приложение 2 выдает следующую ошибку:

OAuthException: (#3502) Object at URL <url> has og:type of 'promoTest:item'. The property 'item' requires an object of og:type 'promo:item'.

Приложение 2 производит правильный тип. Но Facebook жалуется, что ему нужен тип, связанный с приложением 1. Похоже, что элемент приложения 1 заменяет элемент приложения 2. Конечно, есть сотни приложений с объектами с именем «item», поэтому нам нужны пространства имен.

Так почему же Facebook запрашивает у приложения 2 пространство имен приложения 1?

1 Ответ

3 голосов
/ 29 февраля 2012

Здесь возможно две вещи:

  • Тег fb: app_id должен соответствовать приложению, которое вы пытаетесь использовать
  • URL-адреса двух объектов должны быть разными - например, у вас должны быть app1.example.com/some/url и app2.example.com/some/url - в противном случае Facebook увидит тот же URL-адрес и увидит его в зависимости от того, какое приложение использовалось, когда против него было впервые опубликовано действие.
...