Неизвестные компоненты пути - PullRequest
3 голосов
/ 25 февраля 2012

Я пытаюсь опубликовать действие "Смотреть", но у меня всегда есть эта ошибка:

Error occured

Type: OAuthException

Message: Unknown path components: /MyAppName:watch

Это моя функция JS:

function postWatch()
  {
FB.api('/me/MyAppName:watch' + 
    '?video=http//myLink.com','post',
    function(response) {
    var msg = 'Error occured';
    if (!response || response.error) {
    if (response.error) {
    msg += "\n\nType: "+response.error.type+"\n\nMessage: "+response.error.message;
    }
    alert(msg);
    } 
    else {
    alert('Post was successful! Action ID: ' + response.id);
    }
    });
  }

Это мой тег og:

<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US"
      xmlns:fb="https://www.facebook.com/2008/fbml"> 
    <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# video: http://ogp.me/ns/video#">
    <meta property="fb:app_id" content="MyAppID" />
    <meta property="og:title" content="MyTitle" />
    <meta property="og:image" content="http://MyUrlImage.com" />
    <meta property="og:description" content="MyDescription" />
    <meta property="og:url" content="MyLink.com">
    <meta property="og:site_name" content="MySiteName" />
    <meta property="og:type" content="video.movie" /> 

Есть идеи?

Спасибо;)

PS: Извините за мой плохой английский, я француз;)

С уважением

Ответы [ 2 ]

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

Для встроенных действий синтаксис другой. Использовать video.watches

2 голосов
/ 15 марта 2012

На самом деле для ваших собственных действий / объектов вы можете использовать следующий синтаксис:

var params = {};
params['video'] = 'http://example.com/myvideo.html';
FB.api('me/mynamespace:watch','post',params,function(response){
       console.log(response);
});

Это фактически опубликует на вашей стене действие с объектом, если ваш пользователь предоставил publish_actions разрешение.Что касается прав доступа, вы, вероятно, захотите убедиться, что у вас есть разрешение, поэтому ваш чек должен выглядеть примерно так:

FB.api('me/permissions','get',function(response){
       if (response.data[0].publish_actions){
          //do your magic
       }      
});
...