0
我正在嘗試對其貼上多個朋友的帖子,到目前爲止,我已經設法發佈在我的牆上,現在只剩下標籤了。我已經檢查了這個問題堆棧Post on personal Facebook wall using ios sdk and tag multiple friends at once..?,並檢查了在Facebook的標記在https://developers.facebook.com/docs/opengraph/guides/tagging/的描述,但仍不知道我應該如何在iOS中實現這一點。這是我在我的牆上如何在iOS中的帖子上標記多個朋友
-(void)shareAdOnFacebook:(NSString *) wallMessage UserId:(NSString *) userID
{
NSArray *permissions =[NSArray arrayWithObjects:@"publish_actions",@"publish_stream",@"manage_friendlists", nil];
NSMutableDictionary* params = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"Test miLineup!", @"message", @"Iphone Apps", @"name", nil];
NSLog(@"\nparams=%@\n", params);
NSLog(@"PERMISSIONS:%@",[[FBSession activeSession]permissions]);
if ([[FBSession activeSession]isOpen]) {
if ([[[FBSession activeSession]permissions]indexOfObject:@"publish_actions"] == NSNotFound) {
[[FBSession activeSession] requestNewPublishPermissions:permissions defaultAudience:FBSessionDefaultAudienceFriends
completionHandler:^(FBSession *session,NSError *error){
NSLog(@"Perform operation");
[self postOnWall:wallMessage UserId:userID];
}];
}else{
NSLog(@"Perform operation");
[self postOnWall:wallMessage UserId:userID];
}
}else{
[FBSession openActiveSessionWithPublishPermissions:[NSArray arrayWithObject:@"publish_actions"]
defaultAudience:FBSessionDefaultAudienceOnlyMe
allowLoginUI:YES
completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
if (!error && status == FBSessionStateOpen) {
NSLog(@"Status is Open");
[self postOnWall:wallMessage UserId:userID];
}else{
NSLog(@"error");
}
}];
}
}
- (void)postOnWall:(NSString *) wallMessage UserId:(NSString *) userID
{
NSNumber *testMessageIndex=[[NSNumber alloc] init];
if ([[NSUserDefaults standardUserDefaults] objectForKey:@"testMessageIndex"]==nil)
{
testMessageIndex=[NSNumber numberWithInt:100];
}
else
{
testMessageIndex=[[NSUserDefaults standardUserDefaults] objectForKey:@"testMessageIndex"];
};
testMessageIndex=[NSNumber numberWithInt:[testMessageIndex intValue]+1];
[[NSUserDefaults standardUserDefaults] setObject:testMessageIndex forKey:@"testMessageIndex"];
[[NSUserDefaults standardUserDefaults] synchronize];
// create the connection object
FBRequestConnection *newConnection = [[FBRequestConnection alloc] init];
// create a handler block to handle the results of the request for fbid's profile
FBRequestHandler handler =
^(FBRequestConnection *connection, id result, NSError *error) {
// output the results of the request
[self requestCompleted:connection forFbID:@"me" result:result error:error];
};
NSString *messageString=wallMessage;
FBRequest *request= [FBRequest requestWithGraphPath:userID parameters:[NSDictionary dictionaryWithObject:messageString forKey:@"message"] HTTPMethod:@"POST"];
[newConnection addRequest:request completionHandler:handler];
// if there's an outstanding connection, just cancel
[self.requestConnection cancel];
// keep track of our connection, and start it
self.requestConnection = newConnection;
[newConnection start];
}
// FBSample logic
// Report any results. Invoked once for each request we make.
- (void)requestCompleted:(FBRequestConnection *)connection
forFbID:fbID
result:(id)result
error:(NSError *)error
{
NSLog(@"request completed");
// not the completion we were looking for...
if (self.requestConnection &&
connection != self.requestConnection)
{
NSLog(@" not the completion we are looking for");
return;
}
// clean this up, for posterity
self.requestConnection = nil;
if (error)
{
NSLog(@" error:%@",error);
}
else
{
NSLog(@" ok");
};
}
通過這個我可以張貼在牆上的自我張貼當前的代碼,我需要修改它來標記其他用戶。