我正在尝试将FB SDK集成到我的UNITY GAME for ios和ANDROID中
FB SHARE AND INVITE工作正常,在FBSCENE"场景。
但是在" GAME"场景我想在游戏结束后拍摄一张SCREENSHOT并将其发布在用户FB WALL上
我读了"拍摄并发布截图"在 https://developers.facebook.com/docs/unity/reference/current/FB.API 的示例下
我的代码就是这个
public void screenShareFB()
{
callFB ();
}
void callFB () {
if (!FB.IsLoggedIn) {
FB.Login("email,publish_actions", LoginCallback);
}
else {
StartCoroutine(TakeScreenshot());
}
}
void LoginCallback(FBResult result) {
FbDebug.Log("LoginCallback");
if (FB.IsLoggedIn) {
StartCoroutine(TakeScreenshot());
}
}
/*
void OnLoggedIn() {
FbDebug.Log("Logged in. ID: " + FB.UserId);
}*/
private IEnumerator TakeScreenshot() {
yield return new WaitForEndOfFrame();
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();
var wwwForm = new WWWForm();
wwwForm.AddBinaryData("image", screenshot, "InteractiveConsole.png");
wwwForm.AddField("message", "herp derp. I did a thing! Did I do this right?");
FB.API("me/photos", Facebook.HttpMethod.POST, Callback, wwwForm);
Debug.Log("done");
}
private Texture2D lastResponseTexture;
private string lastResponse = "";
public string ApiQuery = "";
void Callback(FBResult result)
{
lastResponseTexture = null;
if (result.Error != null)
lastResponse = "Error Response: " + result.Error;
else if (!ApiQuery.Contains("/picture"))
lastResponse = "Success Response: " + result.Text;
else
{
lastResponseTexture = result.Texture;
lastResponse = "Success Response: ";
}
}
当用户点击SHARE SCREENSHOT按钮时,会调用screenShareFB()
注:
我调用了FB.Init(带回调方法);在脚本的Start()中
我正在使用C#脚本
这是因为我的应用程序不在facebook上发布吗?
我已经在facebook上配置了它
我在PC上测试。
如果代码或我遗失的任何内容有任何问题,请告诉我。
答案 0 :(得分:0)
问题是权限
facebook的“publish_actions”权限未经审核
截图没有发布。
但有一件事,当试图填写fb的详细信息来审查我的应用程序并允许我访问我的用户的publish_actions
他们要求我们在“BASIC”的“SETTINGS”下添加一个“平台”
现在我正在使用UNITY
这里没有提到它作为一个平台。
我该怎么办。?