Facebook Unity API - 发布带有链接和描述的屏幕截图?

时间:2013-11-26 21:34:42

标签: facebook facebook-graph-api unity3d screenshot facebook-unity-sdk

我想让我的应用程序(iOS,Android)允许用户使用链接和描述将屏幕截图发布到Facebook。我可以使用FB.API()将我的应用程序的屏幕截图上传到Facebook为我的应用程序自动生成的用户专辑,通过:

    int width = Screen.width;
    int height = Screen.height;
    Texture2D 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();

    string picName = "Idioman_" + Time.time + ".png";
    wwwForm.AddBinaryData("image", screenshot, picName);

    Debug.Log("trying to post screenshot");
    FB.API("me/photos", Facebook.HttpMethod.POST, PostPicCallback, wwwForm); 

我可以使用FB.Feed()从互联网上发布图像,其中包含链接和描述到用户的Feed。有没有办法通过链接和说明将屏幕截图发布到用户的Feed?

3 个答案:

答案 0 :(得分:2)

    var snap = new Texture2D(Screen.width, Screen.height, TextureFormat.RGB24, false);
    snap.ReadPixels(new Rect(0, 0, Screen.width, Screen.height), 0, 0);
    snap.Apply();
    var screenshot = snap.EncodeToPNG();

    int i = UnityEngine.Random.Range (0, 2);

    var wwwForm = new WWWForm();
    wwwForm.AddBinaryData("image", screenshot, "picture.png");
    wwwForm.AddField ("name", "this will be the caption for the image");

    FB.API("me/photos", HttpMethod.POST, CallbackUploadImage, wwwForm);

您可以在此处参阅可用字段的更多详细信息

https://developers.facebook.com/docs/graph-api/reference/v2.2/photo

答案 1 :(得分:1)

使用上面的代码上传屏幕截图后,请检查回调方法中的FBResult并使用键“id”解析结果,以便获得上传的照片ID。

您的照片链接将为“https://www.facebook.com/photo.php?fbid=INSERT_YOUR_ID”,因为INSERT_YOUR_ID是之前结果的ID。在FB.Feed上使用该链接。

答案 2 :(得分:0)

请按以下步骤操作:

  1. 首先使用FB.LogInWithPublishPermissions通过在参数中添加"publish_actions"权限进行登录。
  2. 使用 Facebook Graph API 上传图片。
  3. 有关详情,请点击 here