我正在爲iOS創建一個照片應用程序。我有一個自定義的動作類型,在我的應用程序中定義的「拍照」。我首先創建了「照片」對象(我有一個用戶生成的圖像,而且我第一次上傳照片並獲得分期URI這個代碼後):如何在創建Open Graph對象時禁止Facebook默認創建動作(發佈)
NSMutableDictionary *imageData = [NSMutableDictionary dictionaryWithDictionary:
@{
@"url" : stagingURL,
@"user_generated" : @"true",
}];
NSMutableDictionary<FBOpenGraphObject> *object =
[FBGraphObject openGraphObjectForPostWithType:@"tonerapp:photo"
title:@"photo"
image:imageData
url:@"http://tonerapp.info"
description:title];
//post the object to facebook
[FBRequestConnection startForPostOpenGraphObject:object completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
if(result != nil){
NSString* resultID = [result objectForKey:@"id"];
NSMutableDictionary<FBGraphObject> *actionDict = [FBGraphObject graphObject];
actionDict[@"photo"] = resultID;
[self postTakeActionToFacebookWithOpenGraphObject:actionDict completion:action];
}else{
action(NO);
}
}];
發佈的對象後,如上所示,我在完成處理程序中發佈「take」操作。下面是與「合影」的對象發佈的「採取」行動代號:
-(void)postTakeActionToFacebookWithOpenGraphObject:(NSMutableDictionary<FBGraphObject>*)ogObject completion:(booleanAction)action{
if(self.selectedPlace != nil){
ogObject[@"place"] = [self.selectedPlace id];
}
if(self.taggedFriends != nil && self.taggedFriends.count > 0){
ogObject[@"tags"] = self.taggedFriends;
}
[FBRequestConnection startForPostWithGraphPath:@"me/tonerapp:take"
graphObject:ogObject
completionHandler:^(FBRequestConnection *connection,
id result,
NSError *error) {
if(result != nil){
NSLog(@"oldu");
action(YES);
}else{
action(NO);
}
}];
}
下面是結果:創建
首先「後」的行動,那麼「採取」行動適用於照片。我需要擺脫「後」行動。更古怪,我打開圖形儀表盤看起來是這樣的:
我刪除了「對象」型和「郵報」的行動,但每個其他時間,將它們添加到我的行動一次。我懷疑我做錯的事情是「缺省創建後操作」問題和缺省對被添加到我的儀表板的原因。我去我的應用程序的設置和更改我的照片類型的訂閱(創建)行動:
然後我嘗試再次發佈我的照片。儘管我的創作行爲是「吃」,創建一個「後」的行動:
但我不能夠產生任何「採取」行動這段時間。它與此響應失敗:
body = {
error = {
code = 1611231;
message = "A post action for this object already exists.";
type = Exception;
};
};
code = 500;
這不應該是恰恰相反嗎?我不應該把它搞亂,如果我不將我的默認創建行動設置爲我的自定義操作?我也試着創建照片對象「在飛」(沒有「發佈」它首先發送對象的JSON數據直接在「採取」行動,這似乎是自然的做法),但它也會失敗,就像在這個例子中:Example Facebook object code.。我是否錯過了某些東西,或者Open Graph API有什麼嚴重錯誤?
謝謝,
可以。
更新:我已啓用2013年7月的遷移。
我很震驚,這個問題不會有更多的投票UPS ..認真 – abbood