Unity Facebook SDK发布动画GIF

时间:2018-02-06 01:22:08

标签: facebook facebook-graph-api unity5 gif

我正在尝试使用Unity Facebook SDK和FB.API在Facebook上发布位于我计算机上的动画GIF文件。代码如下所示:

%matplotlib inline
import seaborn as sns
sns.set(color_codes=True)
tips = sns.load_dataset("tips")
g = sns.lmplot(x="total_bill", y="tip", data=tips, hue="smoker")

调用WWWForm formData = new WWWForm(); formData.AddField("description", "my description"); formData.AddBinaryData("file", gifContent, "gif_name"); FB.API("/me/videos", HttpMethod.POST, PostCallback, formData); 时,参数中的PostCallback对象如下所示:

enter image description here 根据Facebook文档(https://developers.facebook.com/docs/graph-api/video-uploads),支持格式IGraphResult,图像的宽高比应为9x16或16x9。

我的.gif是我从gifContent文件中读取的bytes array,文件的分辨率为480x270。文件的大小可以在2-5MB之间变化到45-50MB(用于测试目的)。

我的Facebook SDK版本是7.9.0。

请注意,我尝试将其上传为视频的原因是因为我在某处读到了GIF意图作为视频上传,但为了记录,我尝试使用.gif之前我尝试过与视频。

更新

这是正确的文档链接,将GIF显示为有效格式(对错误道歉):https://developers.facebook.com/docs/graph-api/video-uploads

1 个答案:

答案 0 :(得分:0)

我发布此信息以供将来参考。

事实证明,这个问题是由于我犯了一个非常愚蠢的错误造成的。我在Unity中收到“无效格式”错误的原因是因为我传递给FB.API方法的文件名缺少.gif扩展名(我没有意识到这一点)时间)。

之所以难以察觉,是因为虽然我的例子显示了硬编码字符串,但在我的实际代码中,我使用了一个变量作为文件名的函数参数。

所以不要这样:

formData.AddBinaryData("file", gifContent, gifNameVariable);

我这样做了:

formData.AddBinaryData("file", gifContent, gifNameVariable + ".gif");