我正在使用PHP开发Android游戏,但是当我尝试将分数发布到我的Facebook墙上时,描述会与另一个应用程序合并。
从此应用Daily Tools获取的说明和我的实际游戏是Just Double It
图片如下,logo&描述错误
描述:我的游戏说明+我的应用说明。
自动检测到描述,而不是我写的。
这是我发布到Facebook的代码snippit
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";
}
}
}
答案 0 :(得分:3)
@ 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',
}
答案 1 :(得分:1)
糟糕! Facebook正在抓错错误的开放图表数据。你从另一个应用程序获取数据,因为它们可能托管在同一台服务器上,Facebook没有为Just Double It找到足够的Open Graph数据,但它 DID 在服务器上找到描述和图片数据(即来自Daily Tools)。如果它是该服务器上唯一的Open Graph数据,我认为即使这两个项目托管在不同的文件夹中也不重要。
看起来你已经完成了创建应用程序并使用oAuth2正确验证它的所有工作,所以这里还有剩下要检查的内容:
假设您已经拥有所需的所有Open Graph数据,并且您已经验证了它的位置:
一旦在调试器中处理完毕,您的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"/>
希望有所帮助,祝你好运!
答案 2 :(得分:0)
您应该确保阅读https://developers.facebook.com/policy,尤其是2.3:“确保用户输入用户消息参数中的所有内容。请勿预先填写。这包括帖子,消息,评论和字幕“。
答案 3 :(得分:-2)
我已经解决了我的问题,使用Facebook sdk为Android初步面临一些问题因此无法使用facebook sdk但现在所有问题都解决了。谢谢你的答案。