jos*_*eym 12 facebook facebook-graph-api
我正在编写一个将照片上传到Facebook的应用程序.我没有提供相册ID,因此代表我的应用创建了相册.
我的问题是:如何获取照片上传到的相册ID?
当我GET的照片信息时,JSON中没有这张专辑,这是我的希望.
Jimmy Sawczuk的答案很接近,但是因为FQL Photo表列aid并且pid是Rest/FQL API ID而不是Graph API ID而不起作用.
幸运的是,此表中的object_id和album_object_id列是可索引的(与文档相反),因此这应该为您提供相册的Rest/FQL和Graph ID:
select aid, album_object_id from photo where object_id = ${GRAPH_PHOTO_ID}
Run Code Online (Sandbox Code Playgroud)
通常object_id,Rest/FQL API响应中的字段是Graph API id(照片通知除外,它是Rest/FQL id).
Re HonkyHonk的回答:并非所有的照片link网址都有set参数; 在这种情况下,我认为您可以从其他参数中找到Rest/FQL API照片ID,然后使用Rest/FQL API获取相册ID:
(id << 32) | pid
2360873244068853905id,_和pid
100002937903251_155052如果Facebook可以记录有关这两种类型的ID的内容,那将会有很大帮助.此外,Graph API Photo架构还应包含相册的Graph API ID.
小智 4
这个问题也困扰了我一段时间,但我想我已经解决了这个问题。
相册 ID 隐藏在链接值中,因此如果您有来自 Graph API 的照片发布对象,则可以像这样检索相册 ID:
NSString *link = [item valueForKey:@"link"];
NSString *album_id = nil;
NSRange fRange = [link rangeOfString:@"set=a."];
if(fRange.location != NSNotFound) {
NSInteger firstPos = fRange.location + 6;
NSInteger endPos = [link rangeOfString:@"." options:NSLiteralSearch range:NSMakeRange(firstPos, 25)].location;
album_id = [[link substringWithRange:NSMakeRange(firstPos, endPos - firstPos)] copy];
}
Run Code Online (Sandbox Code Playgroud)
它可能全部被精简为一行代码,但我认为这更具可读性。要获取专辑信息,请使用:
[facebook requestWithGraphPath:album_id andDelegate:delegate];
Run Code Online (Sandbox Code Playgroud)
要获取相册中的所有照片,请使用:
[facebook requestWithGraphPath:[NSString stringWithFormat:@"%@/photos", album_id] andDelegate:delegate];
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助别人。
| 归档时间: |
|
| 查看次数: |
35909 次 |
| 最近记录: |