【问题标题】:FaceBook Integration troublesome IssueFacebook 集成麻烦的问题
【发布时间】:2014-05-01 13:12:27
【问题描述】:

我正在使用 PHP 开发一款 android 游戏,但是当我尝试将乐谱发布到我的 Facebook 墙上时,描述会与另一个应用程序合并。

描述来自这个应用程序Daily Tools,我的实际游戏是Just Double It

图片如下,标识和描述有误

描述:我的游戏描述+我的应用描述。

描述是自动检测到的,不是我写的。

这是我发布到 Facebook 的代码片段

var APP_ID="*****************";

window.fbAsyncInit = initFacebook;
function initFacebook()
{
    FB.init({
        appId  : APP_ID,
        status : true, // check login status
        cookie : false, // enable cookies to allow the server to access the session
        xfbml  : true  // parse XFBML
    });

    FB.getLoginStatus(onFacebookLoginStatus);
};

(function() {
    var e = document.createElement('script');
    e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
    e.async = true;
    document.getElementById('fb-root').appendChild(e);
}());

//the login function
function facebookLogin()
{
    var loginUrl="http://www.facebook.com/dialog/oauth/?"+
    "scope=publish_stream&"+
    "client_id="+APP_ID+"&"+
    "redirect_uri="+document.location.href+"&"+
    "response_type=token";
    window.location=loginUrl;
}

function postToWallUsingFBApi()
{
    var score=atob(document.getElementById("txtscore").value);

    var data=
    {
        caption: "scores "+score,
        message: "I challenge you to beat my score "+score + " in Just Double It! on your    Android Phone !!!",
        picture: "http://www.learning-delight.com/ldapps/Game/main.png",
        link: 'https://play.google.com/store/apps/details?id=com.appslight.justdoubleit',
    }

    FB.api('/me/feed', 'post', data, onPostToWallCompleted);
}

//the return function after posting to wall
function onPostToWallCompleted(response)
{
    (response)
    {
        if (response.error)
        {
            document.getElementById("txtEcho").innerHTML=response.error.message;
        }
        else
        {
            if (response.id){
                window.close();
                t = setTimeout("self.close()",500);
            }
            else if (response.post_id)
                document.getElementById("txtEcho").innerHTML="Posted as post_id responce "+response.post_id;
            else
                document.getElementById("txtEcho").innerHTML="Unknown Error";
        }
    }
}

【问题讨论】:

    标签: php android facebook facebook-graph-api


    【解决方案1】:

    @DrewT 的回答涵盖了该问题以及解决该问题的一些解决方法。另一种方法是完全控制您发布的内容,不要让 facebook 抓取它。如果您查看可以发送到 facebook 的 post params,您会注意到还有一个 description 参数。

    var data=
    {
        caption: "scores "+score,
        description: "I HAVE THE POWER!!",
        message: "I challenge you to beat my score "+score + " in Just Double It! on your    Android Phone !!!",
        picture: "http://www.learning-delight.com/ldapps/Game/main.png",
        link: 'https://play.google.com/store/apps/details?id=com.appslight.justdoubleit',
    }
    

    【讨论】:

      【解决方案2】:

      哎呀! Facebook 正在抓取错误的开放图数据。您正在从另一个应用程序获取数据,因为它们可能托管在同一台服务器上,而 Facebook 没有为 Just Double It 找到足够的 Open Graph 数据,但它DID在服务器上找到了描述和图片数据(即来自日常工具)。如果它是该服务器上唯一的 Open Graph 数据,我认为即使这两个项目托管在不同的文件夹中也没关系。

      您似乎已经完成了创建应用程序并使用 oAuth2 正确验证它的所有工作,所以下面是需要检查的内容:

      假设您已经拥有所需的所有 Open Graph 数据并且您已经验证了它的位置:

      • 新的 OG 数据只会在 Facebook 墙贴页面被 Facebook 的服务器抓取并缓存后才会生效。上次我检查时,我认为这种情况大约每 24 小时发生一次。
      • 但是等等,还有更多!实际上,您可以使用位于此处的 Open Graph 调试器工具强制 Facebook 抓取您的 OG 数据:https://developers.facebook.com/tools/debug/

      一旦在调试器中处理完毕,您的 Just Double It Open Graph 数据将立即生效,以供您的应用推送的未来墙贴请求使用。

      最后,以下是您的应用似乎遗漏的两个 Open Graph 标记的示例:

          <meta property="og:image" content="../relative_path_to_your_image"/>
          <meta property="og:description" content="Desired description of your app"/>
      

      希望对你有帮助,祝你好运!

      【讨论】:

        【解决方案3】:

        您应该确保阅读https://developers.facebook.com/policy,尤其是2.3:“确保用户消息参数中的所有内容均由用户输入。不要预先填写。这包括帖子、消息、cmets 和标题。 "

        【讨论】:

          【解决方案4】:

          我已经使用 Facebook sdk for android 解决了我的问题,最初遇到了一些问题,因此无法使用 facebook sdk,但现在所有问题都已解决。谢谢您的回答。

          【讨论】:

          • 您应该将此作为评论发布。如果您想将其作为答案,只需详细写下即可。切勿在您的答案中添加感谢。
          猜你喜欢
          • 2016-05-05
          • 2011-07-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-10-18
          • 2017-06-18
          相关资源
          最近更新 更多