iOS アプリに問題があります。問題は、ios を介したアップロードが期待どおりに機能しないように見えることです。ここでの本当の問題は、一部のアカウントからはアップロードできますが、他のアカウントからはアップロードできないことです (ただし、以前はアップロードできました)。バグの再現手順は次のとおりです。 - ユーザーがアプリを起動します。- ユーザーが Facebook にログインし、アプリが動作するために必要な権限を付与します。- ユーザーがビデオを Facebook にアップロードします。- Facebook がアップロードの成功を返します。-その後、Facebookにメッセージが表示され、ビデオを処理できませんでした。
この同じ動画が他のアカウントから正常にアップロードされました。
最も奇妙なことは、アップロードに成功したビデオがしばらくすると Facebook ページから消えてしまうことです。
つまり、私たちが基本的に考えているのは、FB にはモバイル デバイスからのユーザーに対するスパム保護の制限があるということです。
それで、私が尋ねているのは、誰かにもそのような問題があったかどうかです。
FB に送信するための PS コードは非常に基本的なものです。
- (void)uploadVideoToFacebookFromFileURL:(NSURL *)url parameters:(NSDictionary *)parameters {
SLRequest *uploadRequest = [SLRequest requestForServiceType:SLServiceTypeFacebook
requestMethod:SLRequestMethodPOST
URL:[NSURL URLWithString:kFBVideoURLString]
parameters:parameters];
NSData *videoData = [NSData dataWithContentsOfURL:url options:NSDataReadingMappedAlways error:NULL];
[uploadRequest addMultipartData:videoData
withName:@"source"
type:@"video/x-m4v"
filename:[url absoluteString]];
uploadRequest.account = self.socialAccount;
IDPLoadingView *loadingView = [IDPLoadingView loadingViewInView:self.view];
[uploadRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
dispatch_async(dispatch_get_main_queue(), ^{[loadingView removeFromSuperview];});
NSString *responseString = [[[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding] autorelease];
if(error){
NSLog(@"Error %@", error.localizedDescription);
dispatch_async(dispatch_get_main_queue(), ^{[self showErrorSending];});
} else {
NSLog(@"%@", responseString);
dispatch_async(dispatch_get_main_queue(), ^{[self showResult];});
}
}];
}