使用Facebook Unity SDK,如何在iOS上发布带有屏幕截图的自定义故事

时间:2014-02-02 20:28:28

标签: facebook-unity-sdk facebook-stream-story

如何通过附带屏幕截图的Facebook Unity SDK发布自定义故事?

我做了什么:

关注粉碎Unity教程。创建了个人资料对象。创建操作粉碎。创建故事粉碎+个人资料。保存。

1)它表示无法生成故事。这是一个问题,还是我还能测试我的故事?

然后根据教程中的代码,我写道:

public void publishAction()
{
Debug.Log ("publish action.");
if (FB.IsLoggedIn)
{
Dictionary<string, string> querySmash = new Dictionary<string, string>();
string testUserID = "1378641979";
querySmash["profile"] = testUserID;
FB.API ("/me/" + FB.AppId + ":smash", Facebook.HttpMethod.POST, publishActionCallback, querySmash);
}
}

void publishActionCallback(FBResult result)
{
if (result.Error != null)
{
Debug.LogWarning("FacebookManager-publishActionCallback: error: " + result.Error );
}
else
{
Debug.Log("FacebookManager-publishActionCallback: success: " + result.Text );
}
}

2)此代码始终返回 400 Bad Request 。不知道为什么,因为它是教程示例的副本。有什么想法吗?

下一步,我想在此故事中附上游戏截图。我没有网站来托管它。我知道如何获取屏幕截图。

var width = Screen.width;
var height = Screen.height;
var tex = new Texture2D(width, height, TextureFormat.RGB24, false);
// Read screen contents into the texture
tex.ReadPixels(new Rect(0, 0, width, height), 0, 0);
tex.Apply();
byte[] screenshot = tex.EncodeToPNG();

3)问题是如何将其附加到我的自定义故事中?

4)在对如何为自定义故事提供自定义标题和消息进行一些研究后,我仍然不清楚。请让我知道如何。

5)最后,如果我的对象是一个新单词(未预定义为个人资料),我的API会调用什么看起来像?假设自定义故事对象是“用餐”。

它会是:     querySmash [“meal”] =“美味的披萨!”?

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

我会一次一个地提出这些问题:

#1 - 2.指定操作名称时,需要使用 namespace :* action *而不是 appid :action。要查看是否存在问题,请查看该400错误的正文是否显示为“无效路径组件”。

#3。在操作配置中,创建类型为image的操作属性。然后,无论该属性的名称是什么,使用它作为键,将图像字节用作WWWForm中的值,并将其作为FB.API()参数传递给formData(请参阅docs了解详情)。如果您创建了一个名为“screenpic”的属性,那么您的示例可能会继续类似

var wwwForm = new WWWForm();
wwwForm.AddBinaryData("screenpic", screenshot, "temp.png");

FB.API("me/mynamespace:myaction", Facebook.HttpMethod.POST, Callback, wwwForm);

#4。您可以使用Story配置中的“编辑附件”按钮配置标题和消息,可能使用模板来包含作为对象标记的一部分提供的字符串或作为操作参数,如"Creating Custom Stories"文档中更全面的描述。

#5几乎。如果您看看如何处理内置对象的情况,您会看到您提供的URL是profile的值。如果您在Facebook的[Open Graph Debugger] [4]中加载该URL,您将看到该URL的网页已标记为Open Graph元数据。因此,类似地,在这种情况下,您需要创建一个带有相应Open Graph标记的网页,以定义新类型的对象(每个对象一个对象),并提供该对象的URL作为值您的示例中为querySmash['meal"]。完整的纲要是在Facebook开发网站的"Using Objects"文档中。