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;
};
};