1

PHLivePhoto の .mov 部分を Facebook にアップロードしようとしていますが、Facebook SDK を使用してアップロードするとエラーが発生します。

まず、PHLivePhoto オブジェクトを取得し、.mov の NSData 値を取得します。

func getLivePhotoData(livePhoto:PHLivePhoto) {

     let assetResources = PHAssetResource.assetResources(for: livePhoto)

     for assetRes in assetResources {

        if assetRes.type == .pairedVideo {

           PHAssetResourceManager.default().requestData(for: assetRes, options: nil, dataReceivedHandler: { (data) in

                self.uploadLivePhoto(data)

                }, completionHandler: { (error) in
                    print(error)
            })
        }
    }
}

次に、次のように NSData オブジェクトをアップロードしようとしています。

func uploadLivePhoto(livePhotoData:Data) {

   var parameters = [AnyHashable: Any]()
   parameters["video.mov"] = data
   parameters["access_token"] = MY_ACCESS_TOKEN

   FBSDKGraphRequest(graphPath: "/FACEBOOK_PAGE_NAME/videos", parameters: parameters, httpMethod: "POST").start(completionHandler: { (FBSDKGraphRequestConnection, result, error) -> Void in

   print(result)
   print(error)

   })


}

次のエラーが表示されます。

body =     {
    error =         {
        code = 6000;
        "error_subcode" = 1363032;
        "error_user_msg" = "It looks like you're trying to upload something that isn't a video or that's corrupt. Please upload a video in a supported format.";
        "error_user_title" = "No Video Detected";
        "fbtrace_id" = DlziJW0f7BN;
        "is_transient" = 0;
        message = "There was a problem uploading your video file. Please try again with another file.";
        type = OAuthException;
    };
};
4

0 に答える 0