2015-12-17 8 views
2

Я несколько недель боролся за то, чтобы узнать, как загрузить видео с помощью графика api. Я просмотрел всю документацию, и я просто не понимаю, что я должен сделать, чтобы получить правильный ответ от графика api, прежде чем писать код. Я включил изображение.Как загрузить видео с помощью графика на Facebook API

Может кто-то просто сказать мне, как ребенок, что я должен положить точно?

enter image description here

+0

Вам необходимо отправить фактические видеоданные в качестве значения параметра 'source' - в том же формате, что и отправка файлов через форму HTML, которые будут отправлять данные. Если вы просто отправляете имя файла, API, конечно, не знает, что с этим делать. – CBroe

+0

спасибо за информацию, но я пробовал добавить file_url и фактически ссылку http, и то же самое происходит. поэтому я до сих пор не понимаю. –

+0

@ CBroe я понял это. проверьте решение ниже. благодаря –

ответ

0

Разобрался, как использовать граф API с C# для единства.

Вы можете оставить комментарий и разместить видео. Указанный url - это просто открытое видео, которое было доступно, выберите свой собственный, если хотите, или если оно станет недоступным в будущем.

наслаждайтесь!

using UnityEngine; 
using System; 
using System.Collections; 
using System.Collections.Generic; 
using Facebook.Unity; 
using Facebook.MiniJSON; 

public class FBVideoPost : MonoBehaviour { 

    // Use this for initialization 
    void Start() { 

     // this is to post string 
     postStatus(); 

     //this is to post video 
     this.StartCoroutine(this.StartVideoUpload()); 
    } 

    void postStatus() 
    { 
     var formdata = new Dictionary<string, string>(); 
     formdata.Add ("message", "This is my third post!"); 
     FB.API("/me/feed", HttpMethod.POST, delegate (IGraphResult callback){ 
      Debug.Log ("This is a test!"); 
     },formdata); 
    } 

    private IEnumerator StartVideoUpload() 
    { 
     yield return new WaitForEndOfFrame(); 

     WWW www = new WWW("http://techslides.com/demos/sample-videos/small.mp4"); 
     while(!www.isDone) { 
      yield return null; 
      Debug.Log("progress : "+www.progress); 
     } 
     Debug.Log("size : "+www.size); 
     var wwwForm = new WWWForm(); 
     wwwForm.AddBinaryData("file", www.bytes, "Video.MOV","multipart/form-data"); 
     wwwForm.AddField("title", "Hello World"); 
     wwwForm.AddField("description", "How you doing?"); 

     FB.API("me/videos", HttpMethod.POST, UploadFinish, wwwForm); 
    } 

    private void UploadFinish(IGraphResult result) { 
     Debug.Log("result : "+result.ToString()+" , error : "+result.Error); 
    } 
} 
0

Я напишу другой форум, где вы ответили сами, и это помогло мне в дополнение к вашему ответу здесь.

http://answers.unity3d.com/questions/1167534/how-to-send-file-local-path-using-wwwform-on-ios-a.html


Короче говоря, для всех, кто хочет "Загрузить видео с помощью FB SDK от прошивки", следовать ответу Луки и добавить следующее:

using UnityEngine; 
using System; 
using System.Collections; 
using System.Collections.Generic; 
using Facebook.Unity; 
using Facebook.MiniJSON; 

public class FBVideoPost : MonoBehaviour { 

    // Use this for initialization 
    void Start() { 

    // this is to post string 
    postStatus(); 

    //this is to post video 
    this.StartCoroutine(this.StartVideoUpload()); 
} 

void postStatus() 
{ 
    var formdata = new Dictionary<string, string>(); 
    formdata.Add ("message", "This is my third post!"); 
    FB.API("/me/feed", HttpMethod.POST, delegate (IGraphResult callback){ 
     Debug.Log ("This is a test!"); 
    },formdata); 
} 

private IEnumerator StartVideoUpload() 
{ 
    yield return new WaitForEndOfFrame(); 

    ///ADD THIS 

    //this is the path to your file.   
    String VideoLocStr = Application.persistentDataPath + "Your_Video.mov" 
    String pathForIOS = VideoLocStr.Replace (" ","%20"); 
    WWW www = new WWW(pathForIOS); 

    /// 

    while(!www.isDone) { 
     yield return null; 
     Debug.Log("progress : "+www.progress); 
    } 
    Debug.Log("size : "+www.size); 
    var wwwForm = new WWWForm(); 
    wwwForm.AddBinaryData("file", www.bytes, "Your_Video.mov","multipart/form-data"); 
    wwwForm.AddField("title", "Hello World"); 
    wwwForm.AddField("description", "How you doing?"); 

    FB.API("me/videos", HttpMethod.POST, UploadFinish, wwwForm); 
} 

private void UploadFinish(IGraphResult result) { 
    Debug.Log("result : "+result.ToString()+" , error : "+result.Error); 
} 
} 

Спасибо, Люку.

Удачи всем.

Смежные вопросы