我希望我的应用在视频帖子中标记好友。 (发布没有标签的视频工作正常)
我正在使用的帐户已添加到我的应用的测试人员列表中。 所以我应该可以在没有任何权限的情况下进行此调用。
但回应仍然是: "错误:(#3)应用程序无法进行此API调用。"
获得" Taggable Friends"权限,我需要将我的应用程序的构建上传到fb。 但我无法自己先测试它来实现此功能。
如何解决这个鸡蛋问题?
我的代码看起来像这样(iOS - Objc):
NSDictionary *params = @{
@"title": @"some title",
@"description": @"some desctiption",
@"tags": _friendId
};
SLRequest *uploadRequest = [SLRequest requestForServiceType:SLServiceTypeFacebook
requestMethod:SLRequestMethodPOST
URL:videourl
parameters:params];
答案 0 :(得分:1)
我找到了解决方案。 您无法在上传请求中设置标记(我仍然不知道为什么)。 但是,您可以在上传视频后在视频中为用户添加标记。
上传成功后,您会收到videoId:
ACAccountCredential *fbCredential = [_facebookAccount credential];
NSString *accessToken = [fbCredential oauthToken];
NSString *urlStr = [NSString stringWithFormat: @"https://graph-video.facebook.com/%@/tags?access_token=%@&tag_uid=%@", _currentVideoId, accessToken, userId];
SLRequest *request = [SLRequest requestForServiceType:SLServiceTypeFacebook
requestMethod:SLRequestMethodPOST
URL:[NSURL URLWithString: urlStr]
parameters: @{}];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void) {
[request performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
//Do something
}];
});
使用此ID,您可以发出第二个请求:
public
void
map(LongWritable key, Text value, OutputCollector<Text, MyObject> output, Reporter reporter)
throws IOException {
try {
ForXmlHandling message = (ForXmlHandling) unmarshaller.unmarshal(new StringReader(value.toString()));
MyObject row = XmlParser.parse(message);
row.setOrigin(true);
output.collect(new Text(row.getPnrRecordKey().toString()), row);
}
catch(JAXBException e) {
LOG.debug(e);
}
要发出第二个请求,您需要@“user_videos”的权限。 如果您想标记更多用户,则需要多次提出此请求。也许这也可能有一个请求,但我还没有想出如何做到这一点。