1

Я работаю над своим заявлением в Кордове, чтобы получить его более вирусный. Поэтому я хочу включить Facebook и Open Graph API, чтобы публиковать в потоке новостей пользователей, когда они архивируют новые вещи в игре. Я совершенно новичок во всем fb и open-graph, поэтому, пожалуйста, помогите начать с него.Facebook Javascript SDK: публиковать действия с настраиваемыми объектами Open Graph

Я войти в систему нового пользователя, выполнив следующий код:

$(login).on("click", function() { 
    FB.login(function() { 
     console.log("Default Login succeded"); 
     console.log("Asking for write permissions"); 
     FB.login(function(rsp) { 
      console.log("GOT WRITE PERMISSIONS"); 
      log(rsp); 
     }, { 
      scope : 'publish_stream' 
     }); 
    }, {scope:"email"}); 

}); 

Я зарегистрировал открытое действие графа под названием buy под пространством имен einszwo. В качестве объекта я использую значение по умолчанию object.

Defined open graph action and object

Это еще не проверяла, но я использую учетную запись разработчика facebook для входа на устройстве.

Теперь я хочу вызвать действие. Для этого я использую следующий код:

var obj = { 
     title : "I visited Google", 
     url : "http://www.google.com" 
    }; 

    function callback(response) { 
     console.log(JSON.stringify(response)); 
    } 


    FB.api('me/einszwo:buy','POST',obj, callback); 

К сожалению, вызов не выполняется следующий ответ от Facebook:

{"error":{"type":"Exception", 
    "message":"The action you're trying to publish is invalid because it does not 
     specify any reference objects. At least one of the following properties 
     must be specified: object.","code":1611072}} 

Было бы очень здорово, если бы кто-то может помочь мне с этой проблемой или предоставить мой некоторая информация, где я могу искать дополнительную информацию.

Спасибо!

Sebastian

EDIT

Решение просто вставить URL, как объекты работает, но мы хотим использовать Facebook принимал объекты, которые вы определили в Facebook Object Browser. Подход заключается в том, чтобы иметь возможность публиковать действия пользователя, и если кто-то нажимает на это действие, мы хотим, чтобы они были перенаправлены на нашу страницу информации о приложении.

Мы не можем предоставить страницу для каждого другого объекта. Разве нет возможности использовать SDK Facebook Javascript для использования предопределенных объектов, размещенных на facebook?

Я бы очень хотел, чтобы иметь возможность, как это либо создать новые объекты

var o = { 
     "og:title" : "Test " + new Date(), 
     "og:url" : "http://facebook.com/appcenter/**APPNAMESPACE**", 
     "og:type" : "Object" 

    } 
    FB.api('/me/**APPNAMESPACE**:buy', 'POST', { 
     object : o 
    }, function(response) { console.log(JSON.stringify(response));}); 

это возвращает

{"message":"(#3503) \"{\"og:title\":\"Test Thu May 23 2013 12:19:45 GMT+0300 (EEST)\",\"og:url\":\"http://facebook.com/appcenter/einszwo\",\"og:type\":\"Object\"}\" is an invalid value for property \"object\" with type \"Reference\"","type":"OAuthException","code":3503}

или способ использовать идентификатор из предопределенных объектов facebook как :

FB.api('1234567890', 'POST', { 
    }, function(response) { console.log(JSON.stringify(response));}); 

Может кто угодно h elp меня?

Спасибо!

ответ

3

Это звучит, как вы говорите объект, принадлежащий приложению.

Объект, принадлежащий приложению. Эти объекты используются во всем приложении. Они общедоступны, как и самообслуживаемые объекты. Любой, кто использует ваше приложение, может видеть их, и они могут быть прикреплены к любой истории, создаваемой вашим приложением.

Вы не можете использовать AppCenter URL как объект (это действительно не имеет смысла, если вы думаете о том, что открыт график URL, предназначены для, и это в значительной степени злоупотребление Open Graph)

Вы создать объект в завиток или с помощью обозревателя объектов

Leopluradon

В моем случае я создал объект Leopluradon для моего типа Coffeeshop. Тогда я получил идентификатор (149831668534005) из результата создания и использовал это в моем вызове

FB.api(
'/me/philippeharewood:code', 
'post', 
{ coffeeshop: '149831668534005' }, 
function(response) { 
    if (!response || response.error) { 
     alert('Error occured'); 
     console.log(response.error); 
    } else { 
     alert('Publish was successful! Action ID: ' + response.id); 
    } 
}); 

демо можно найти на http://philippeharewood.com/facebook/charlie.html, он не будет работать для вас, но вы получите суть.

Result in Browser

Затем вы можете увидеть его в вашей деятельности.

Result on Facebook

Все это объясняется в https://developers.facebook.com/docs/opengraph/using-object-api/

+0

Hej Philippe, большое спасибо за ваш полный правильный ответ с полным примером. Это решило мои проблемы, и я могу использовать объекты, принадлежащие приложению прямо сейчас! Большое спасибо! – Sebastian

2

Вы должны предоставить ссылку для открытого объекта графа, например:

FB.api('/me/einszwo:buy','POST',{object:'http://example.com/product1'}, callback); 

Связанный объект (http://example.com/product1) должны иметь открытые теги графика:

<meta property="fb:app_id" content="133696533402323" /> 
<meta property="og:type" content="object" /> 
<meta property="og:url" content="Put your own URL to the object here" /> 
<meta property="og:title" content="Sample Object" /> 
<meta property="og:image" content="https://s static.ak.fbcdn.net/images/devsite/attachment_blank.png" /> 
+0

Hi Миколая, спасибо за вашу помощь! Теперь вещи уже имеют больше смысла ;-) Я могу опубликовать в Facebook прямо сейчас. Но активность не появляется ни в каком потоке новостей друзей «Test-Account». Я вижу это, если я использую данный идентификатор для доступа к нему, но в противном случае он не появляется нигде. Должен ли я делать что-то особенное, чтобы показать эту активность своим друзьям? – Sebastian

+0

Да, вы должны представить свое действие для просмотра - https://developers.facebook.com/apps/APP_ID/reviews. Вы должны предоставить шаги воспроизведения с помощью скриншотов - в идеале, когда вы будете использовать специального тестового пользователя под названием «Open Graph Test User», - вы можете войти в эту учетную запись, нажав «Переключиться на» в https://developers.facebook.com/apps/APP_ID/roles BTW FB имеет специальный API для архивирования - https://developers.facebook.com/docs/howtos/Achievements/ – smalu

+0

Вы правы, это одобряет работы, но нам очень сложно реализовать это. Мы действительно хотели бы использовать объекты, размещенные на Facebook, в SDK для Javascript Facebook. Кто-нибудь получил эту работу? – Sebastian

Смежные вопросы