Ios 如何在Facebook上发布签入?

Ios 如何在Facebook上发布签入?,ios,objective-c,facebook,facebook-graph-api,facebook-checkins,Ios,Objective C,Facebook,Facebook Graph Api,Facebook Checkins,我需要在Facebook上签入,而不使用Facebook iOS SDK附带的默认签入选项,因为我需要过滤Facebook位置,这样用户只能使用我过滤的位置签入。 我已经用Facebook图形api尝试过了 NSDictionary *dict=[NSDictionary dictionaryWithObjectsAndKeys:accsstoken,@"access_token",@"253651184683030",@"place",@"I m here in this place",@"m

我需要在Facebook上签入,而不使用Facebook iOS SDK附带的默认签入选项,因为我需要过滤Facebook位置,这样用户只能使用我过滤的位置签入。 我已经用Facebook图形api尝试过了

NSDictionary *dict=[NSDictionary dictionaryWithObjectsAndKeys:accsstoken,@"access_token",@"253651184683030",@"place",@"I m here in this place",@"message",@"30.893075018178,75.821777459326",@"coordinates", nil];

[FBRequestConnection startWithGraphPath:@"/me/checkins"
                             parameters:dict
                             HTTPMethod:@"POST"
                      completionHandler:^(
                                          FBRequestConnection *connection,
                                          id result,
                                          NSError *error
                                          ) {
                          NSLog(@"Error...%@",error);

                         }]; 
如果有人知道这件事,一定要让我知道吗?
任何帮助都将不胜感激。

现在不推荐使用
/checkin
发布。查看文档-


您必须使用Open Graph操作来执行相同的操作,下面是关于相同操作的讨论:

因此,首先,根据Facebook API文档,您尝试执行的操作已被弃用

你可以读到它

现在,使用/{user id}/feed,只需添加一个位置id即可。阅读此操作的文档


至于过滤,我不确定这是个什么问题。只需过滤显示给用户的任意位置列表,并确保仅将其中一个位置作为
位置传递

以下是一个工作代码:

_place.facebookId=要签入的位置的位置id

listFriends=要签入的朋友id列表

-(void)publishToFacebook:(NSString *)message
{
// Create the parameters dictionary that will keep the data that will be posted.
NSMutableArray *fArray = [NSMutableArray new];
for (RCPerson *person in listFriends)
{
    [fArray addObject:person.ID];
}

NSMutableDictionary * params = [NSMutableDictionary new];

if(fArray.count > 0)
{
    params = [NSMutableDictionary dictionaryWithObjectsAndKeys: message, @"message",[fArray componentsJoinedByString:@","], @"tags",  _place.facebookId, @"place", nil];

}
else
{
    params = [NSMutableDictionary dictionaryWithObjectsAndKeys: message, @"message", _place.facebookId, @"place", nil];

}

NSLog(@"params %@", params);
FBRequest *postRequest = [FBRequest requestWithGraphPath:@"me/feed" parameters:params HTTPMethod:@"POST"];
postRequest.session = FBSession.activeSession;
if(![postRequest.session.permissions containsObject:@"publish_stream"])
{

    [postRequest.session requestNewPublishPermissions:@[@"publish_stream", @"publish_actions"] defaultAudience:FBSessionDefaultAudienceEveryone completionHandler:^(FBSession *session, NSError *error) {
        [postRequest startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
            NSLog(@"error %@", error.description);
            if(error)
            {
                dispatch_async(dispatch_get_main_queue(), ^(void) {
                    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Facebook error" message:[self parseError:error] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
                    [alert show];
                });
            }
            NSLog(@"%@", result);

            //[self checkinMe];

        }];
    }];
}
else
{
    [postRequest startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
        NSLog(@"error %@", error.description);
        if(error)
        {

            dispatch_async(dispatch_get_main_queue(), ^(void) {
                UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Facebook error" message:[self parseError:error] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
                [alert show];
            });
        }
        NSLog(@"%@", result);
        //[self checkinMe];

    }];
}

}

我可以从哪里获得PlaceID?但为此,您必须拥有place@nerowolfe您能告诉我如何获取位置或页面id吗?例如,借助Facebook sdk方法:FBRequest*postLocRequest=[FBRequest RequestForPlacesSearchCoordinate:currentLocation radiusInMeters:1000结果限制:100搜索文本:@“餐厅”];