Unity Facebook SDK Post GIF 动画
Unity Facebook SDK Post Animated GIF
我正在尝试使用 Unity Facebook SDK 和 FB.API 在 Facebook 上 post 位于我的计算机上的动画 GIF 文件。代码如下所示:
WWWForm formData = new WWWForm();
formData.AddField("description", "my description");
formData.AddBinaryData("file", gifContent, "gif_name");
FB.API("/me/videos", HttpMethod.POST, PostCallback, formData);
调用PostCallback
时,参数中的IGraphResult
对象如下所示:
根据 Facebook 文档 (https://developers.facebook.com/docs/graph-api/video-uploads),格式 .gif
受支持,图像的纵横比应为 9x16 或 16x9。
我的 gifContent
是我从 .gif
文件中读取的 bytes array
,文件的分辨率是 480x270。文件的大小可能在 2-5MB 到 45-50MB 之间变化(用于测试目的)。
我的 Facebook SDK 版本是 7.9.0。
请注意,我尝试将其作为视频上传的原因是因为我在某处读到 GIF 应该作为视频上传,但为了记录,我之前也尝试过 /me/photos
我试过视频。
更新:
这是将 GIF 显示为有效格式的正确文档 link(对错误表示歉意):https://developers.facebook.com/docs/graph-api/video-uploads
我发布这个以供将来参考。
原来这个问题是由我犯的一个非常愚蠢的错误引起的。我在 Unity 中收到 "invalid format" 错误的原因是因为我传递给 FB.API
方法的文件名缺少 .gif
扩展名(我很长时间没有意识到这一点一些时间)。
之所以难以检测到,是因为尽管我的示例显示的是硬编码字符串,但在我的实际代码中,我使用了一个变量作为文件名的函数参数。
所以不是这个:
formData.AddBinaryData("file", gifContent, gifNameVariable);
我这样做了:
formData.AddBinaryData("file", gifContent, gifNameVariable + ".gif");
我正在尝试使用 Unity Facebook SDK 和 FB.API 在 Facebook 上 post 位于我的计算机上的动画 GIF 文件。代码如下所示:
WWWForm formData = new WWWForm();
formData.AddField("description", "my description");
formData.AddBinaryData("file", gifContent, "gif_name");
FB.API("/me/videos", HttpMethod.POST, PostCallback, formData);
调用PostCallback
时,参数中的IGraphResult
对象如下所示:
.gif
受支持,图像的纵横比应为 9x16 或 16x9。
我的 gifContent
是我从 .gif
文件中读取的 bytes array
,文件的分辨率是 480x270。文件的大小可能在 2-5MB 到 45-50MB 之间变化(用于测试目的)。
我的 Facebook SDK 版本是 7.9.0。
请注意,我尝试将其作为视频上传的原因是因为我在某处读到 GIF 应该作为视频上传,但为了记录,我之前也尝试过 /me/photos
我试过视频。
更新:
这是将 GIF 显示为有效格式的正确文档 link(对错误表示歉意):https://developers.facebook.com/docs/graph-api/video-uploads
我发布这个以供将来参考。
原来这个问题是由我犯的一个非常愚蠢的错误引起的。我在 Unity 中收到 "invalid format" 错误的原因是因为我传递给 FB.API
方法的文件名缺少 .gif
扩展名(我很长时间没有意识到这一点一些时间)。
之所以难以检测到,是因为尽管我的示例显示的是硬编码字符串,但在我的实际代码中,我使用了一个变量作为文件名的函数参数。
所以不是这个:
formData.AddBinaryData("file", gifContent, gifNameVariable);
我这样做了:
formData.AddBinaryData("file", gifContent, gifNameVariable + ".gif");