2014-12-30 94 views
0

繼大量的研究,因爲我能做到,我曾嘗試使用後的Facebook視頻以下:Facebook的視頻無法上傳

NSDictionary *params = [ NSDictionary dictionaryWithObjectsAndKeys: 
           filmData, @"video.mov",  // @"source", 
           @"video/m4v", @"contentType", 
           @"Figure It!", @"title", 
           @"Figure It! Film", @"description", 
           nil 
           ]; 


    /* make the API call */ 
    NSString* graphPath = [ NSString stringWithFormat:@"%@/me/videos", facebook_video_base_url ]; 

    FBRequest *request = [ FBRequest requestWithGraphPath:graphPath 
               parameters:params 
               HTTPMethod:@"POST" ]; 

    [ request startWithCompletionHandler:^(
              FBRequestConnection *connection, 
              id result, 
              NSError *error 
              ) 

這是我的意見:

  1. 如果我發佈到https://graph-video.facebook.com/me/videos ,它總是給我返回具有根對象/我/視頻的id的通用答案。這個ID總是10150481253673034.
  2. 如果發佈給我/視頻,那麼我得到錯誤「(#352)對不起,您選擇的視頻文件是我們不支持的格式。」
  3. 我已經使用描述而不是消息,並且我還使用了標題。
  4. 我用@ 「video.mov」,而不是@ 「源」,
  5. 我用@ 「的contentType」,雖然一些答案它作爲@ 「的contentType」。我嘗試了兩種選擇。
  6. 然後一些答案將@「ContentType」作爲@「multipart/formdata」,其他答案將其作爲@「video/quicktime」。我已經嘗試過,結果沒有任何區別。

我閱讀Facebook頭文件中的文檔,它說如果您提供NSData作爲參數,它將作爲HTTP附件發送,因此它不會作爲多部分數據發送。如果我自己組裝HTTP主體,那麼沒有API可以使用預裝配的HTTP主體來創建FBRequest。

我沒有做過任何事情,可以讓我找回新上傳視頻的ID。如果任何人都可以提供幫助,那會很棒。謝謝,

回答

0

我終於明白了這個問題。

問題是我的會話在ReadPermissions上打開,而不是在PublishPermissions上打開。所以我用@「publish-actions」使用openActiveSessionWithPublishPermissions重新打開了我的FBSession,問題得到解決。

因此,我們可以簡單地發佈與我/視頻,和Facebook似乎處理罰款。

所以我不需要發佈到graph-video.facebook.com,我也不需要擔心多部分機構。這可能會在未來的晚些時候發生變化,因爲API要求它,所以當時我必須弄清楚。

現在我可以張貼罰款。