Обектът е от тип Грешка в уебсайта при опит за публикуване на персонализирано действие

Когато се опитам да публикувам персонализирано действие, получавам грешка (по-долу), че URL адресът, представляващ моя обект, е от тип уебсайт. Както можете да видите от моя обект html, включих a. og:type '{app_namespace}:{object_name}' таг, всъщност този код е генериран предимно от приложението за разработчици. Успешно публикувах персонализирани действия в миналото за други приложения и не мога да разбера какво е различното този път. Всякакви предложения ще бъдат оценени.

Грешка във Facebook:

{"error":{"message":"(#3502) Object at URL {URL} has og:type of 'website'. The property 'issue' requires an object of og:type '{app_namespace}:{object_name}'. ","type":"OAuthException","code":3502}}

Html на обект:

<html>
  <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# {app_namespace}: http://ogp.me/ns/fb/{app_namespace}#">
    <meta property="og:type"   content="{app_namespace}:{object_name}" /> 
    <meta property="fb:app_id" content="{app_id}" /> 
    <meta property="og:url"    content={URL for this Html} /> 
    <meta property="og:title"  content="Sample title" /> 
    <meta property="og:image"  content="https://s-static.ak.fbcdn.net/images/devsite/attachment_blank.png" />
  </head>
<body>
</body>
</html>

Кодът, който използвам за публикуване на действието:

<head>
    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
    <script type="text/javascript">
        function clickHandler() {
            FB.getLoginStatus(function (response) {
                if (response.authResponse) {
                    FB.api('/me/{app_namespace}:{action_name}?{object_name}={object_url}', 'post', function (response) {
                        alert(JSON.stringify(response));
                    });
                } else {
                    //If user not logged in initiate login process
                    FB.login(function (response) {

                        if (response.authResponse) {
                            FB.api('/me/{app_namespace}:{action_name}?{object_name}={object_url}', 'post', function (response) {
                                alert(JSON.stringify(response));
                            });
                            //actionPublish();
                        } else {
                            //user cancelled login or did not grant authorization
                        }
                    }, {
                        scope: 'publish_actions'
                    });
                }

            });
        }

        $(document).ready(function () {
            window.fbAsyncInit = function () {
                FB.init({
                    appId: '{app_id}',
                    status: true,
                    cookie: true,
                    xfbml: true,
                    oauth: true
                });

                // run once with current status and whenever the status changes
                FB.getLoginStatus(updateButton);
                FB.Event.subscribe('auth.statusChange', updateButton);
            };

            (function () {
                var e = document.createElement('script');
                e.async = true;
                e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
                $("#fb-root").append(e);
            }());
        });
    </script>
</head>

<body>
    <div id="fb-root"></div>
    <button id="publishButton" onclick=clickHandler(); return false " >Publish</button>
</body>

Edit:

Ако поставя URL адреса на fb обекта в инструмента за отстраняване на грешки, получавам следната грешка:

„Възникна грешка при извличането на обекта на URL „http://www.thepropagator.com/takeAction/draft_1/demos3/issue_4.php“ или един от URL адресите, посочени чрез пренасочване или „og:url“ собственост, включително един от http://www.thepropagator/takeAction/draft_1/demos3/issue_4.php."

Ако се опитам да блокирам URL маркера заедно, грешката изчезва, и в двата случая, когато се опитам да публикувам действие, Facebook изпраща обратно грешката, казвайки, че обектът е от тип уебсайт.


person Ben Pearce    schedule 03.07.2012    source източник
comment
Поставете URL адреса на вашия обект чрез инструмента за отстраняване на грешки във Facebook.   -  person CBroe    schedule 04.07.2012
comment
Инструментът за отстраняване на грешки на Facebook ще ви покаже какво открива Facebook за вашия URL адрес - уверете се, че предоставяте валидни метаданни за робота (а не само за обикновените уеб браузъри) и че нямате og:url или HTTP 301 пренасочване в palce   -  person Igy    schedule 04.07.2012
comment
Здравейте, момчета, опитах да използвам инструмента за отстраняване на грешки, но имам проблеми с тълкуването на резултатите по отношение на грешката, която Facebook ми изпраща обратно, когато се опитвам да публикувам (вижте редакцията на въпроса по-горе). URL адресът, който отстранявам грешки, е: thepropagator.com/takeAction/draft_1/demos3/ issue_4.php   -  person Ben Pearce    schedule 05.07.2012


Отговори (2)


Вижте първите два отговора на тази тема.

Тази тема също може да ти помогна.

Или този.

Други предложения:

  1. Етикетът fb:app_id трябва да съответства на приложението, което се опитвате да използвате.
  2. Сигурни ли сте, че og:url действително съвпада с URL адреса на обектите? Може би имате og:url таг на страницата на събитието, който пренасочва facebook някъде другаде, където няма og таговете на събитието.
  3. Използвали ли сте същия URL адрес за обект в друго приложение? Това също може да причини проблем. Ако вашият сайт изисква влизане, това също може да е проблем.
person Michael Frederick    schedule 10.07.2012

В крайна сметка създадох ново приложение за Facebook. Това приложение имаше същия проблем, но след като го коригирах малко (както с програмата за отстраняване на грешки, така и с моя код, започнах да работя. Не съм сигурен каква е причината тук, но вярвам, че проблемът може да е от три корени, бъгове от моя страна, Кеширане във Facebook и кеширане от моя страна.

Благодаря на всички за техните отговори.

person Ben Pearce    schedule 16.07.2012