作为用户在我的应用中采取某些操作的事件,我想代表他们将图片发布到Facebook。让我们假设用户已经在类LoginVC中授予了我publish_actions权限(将来有一次权限用于无限期发布)。然后在将来的某些部分,在ActionVC中,我想将照片发布到Facebook。我怎么做?这是我需要实现的方法:
- (void)publishPhoto:(UIImage *)image
{
//what goes in here?
}
到目前为止,我一直在查看Facebook的样本。我最接近的是以下,但似乎是使用Dialog。但我不希望用户知道"照片正在发布。他们已经获得了许可,我希望在他们不知情的情况下发布这些内容。所以其他一些动作引发了发布的呼吁......
作为参考,Facebook样本中的代码如下所示
- (void)publishPhoto:(UIImage *)image
{
BOOL canPresent = [FBDialogs canPresentShareDialogWithPhotos];
NSLog(@"canPresent: %d", canPresent);
FBPhotoParams *params = [[FBPhotoParams alloc] init];
params.photos = @[image];
BOOL isSuccessful = NO;
if (canPresent) {
FBAppCall *appCall = [FBDialogs presentShareDialogWithPhotoParams:params
clientState:nil
handler:^(FBAppCall *call, NSDictionary *results, NSError *error) {
if (error) {
NSLog(@"Error: %@", error.description);
} else {
NSLog(@"Success!");
}
}];
isSuccessful = (appCall != nil);
}
if (!isSuccessful) {
[self performPublishAction:^{
FBRequestConnection *connection = [[FBRequestConnection alloc] init];
connection.errorBehavior = FBRequestConnectionErrorBehaviorReconnectSession
| FBRequestConnectionErrorBehaviorAlertUser
| FBRequestConnectionErrorBehaviorRetry;
[connection addRequest:[FBRequest requestForUploadPhoto:image]
completionHandler:^(FBRequestConnection *innerConnection, id result, NSError *error) {
[self showAlert:@"Photo Post" result:result error:error];
if (FBSession.activeSession.isOpen) {
self.buttonPostPhoto.enabled = YES;
}
}];
[connection start];
self.buttonPostPhoto.enabled = NO;
}];
}
}
很抱歉,如果这个问题看起来太容易了,但我是Facebook SDK集成的新手
答案 0 :(得分:0)
一般来说,您肯定希望用户知道某些内容是代表他们发布的,但要回答您的问题,如果他们已经授予您发布权限,那么您可以在第二个“if”语句中使用该代码您在上面发布的内容,称为FBRequest requestForUploadPhoto: