iOS Facebook状态位置

时间:2012-02-01 15:40:03

标签: ios facebook location

我对如何在用户状态中使用位置感到困惑。我看到有一个场地,但我不知道如何使用它。说明只是说一个对象,它根本没有指定它想要的对象以及它想要的格式。任何人都可以帮我发布一个包含位置的状态吗?

这是我现在的代码:

- (void)postWithMessage:(NSString *)message image:(UIImage *)image location:(CLLocation *)location {
    NSMutableDictionary *params = [NSMutableDictionary dictionary];
    NSString *path = @"feed";
    [params setObject:@"status" forKey:@"type"];
    if (message && ![message isEqualToString:@""]) [params setObject:message forKey:@"message"];
    if (image) {
        path = @"me/photos";
        [params setObject:@"photo" forKey:@"type"];
        NSData *imageData = UIImagePNGRepresentation(image);
        [params setObject:imageData forKey:@"source"];
    }
    if (location) {
        //Stole this from iOS hackbook that Facebook wrote, but it wasn't helpful.
        NSString *centerLocation = [[NSString alloc] initWithFormat:@"%f,%f", location.coordinate.latitude, location.coordinate.longitude];
        [params setObject:centerLocation forKey:@"center"];
    }


    [facebook requestWithGraphPath:path andParams:params andHttpMethod:@"POST" andDelegate:self];
}

4 个答案:

答案 0 :(得分:1)

creating a stream post的文档列出了一个参数place,其值为该位置的 Facebook页面ID 。您可以通过searchquerying the place FQL table找到这些地方ID。

在这种情况下,您还应该使用Graph api路径me/feed

虽然与您的问题无关,但在if (image)分支中添加了type中没有记录的参数{{1}}。

答案 1 :(得分:0)

要添加地点,您需要提供Facebook目前已知的地点ID。为此,您可以获得最近的返回ID的位置,然后添加您想要的位置。

答案 2 :(得分:0)

你错过了一些东西,我记得,hackbook使用该位置来找到地方ID,然后把它放在参数“place”中。

要这样做, 1.你需要做一个搜索:

https://graph.facebook.com/search?
  q=coffee&
  type=place&
  center=40.7167,-74&
  distance=1000

//从facebook复制:]

  1. 选择一个地方
  2. 发布带有地方ID的帖子 注意到,正如我之前尝试过的那样,你不能选择距离超过1000米的地方 (现在不确定,很久以前就试过了)

答案 3 :(得分:0)

测试一下你可以在这里试试https://developers.facebook.com/tools/ 在该字段粘贴此行示例“搜索?q = spa& type = place& center = 40.7167,-74& distance = 1000”

then you will see results like 
{
  "data": [
    {
      "location": {
        "street": "221 Canal Street, Room 301", 
        "city": "New York", 
        "state": "NY", 
        "country": "United States", 
        "zip": "10013", 
        "latitude": 40.71761, 
        "longitude": -73.99933
      }, 
      "category": "Spas/beauty/personal care", 
      "name": "CiCi Beauty Spa", 
      "id": "180068255444372"
    }, 

etc...

you can then post status like 
("message", "im here guys"); // your message
("place", "180068255444372"); // the id of the place 

in the tool field "me/feed"
工具中的

将方法更改为POST,然后为“message”和“place”添加字段参数以进行测试。