2013-04-25 4 views
2

Facebook 개체 API를 사용하여 Facebook 개체를 만든 다음 나열하려고합니다. Based on the documentation 우리는 '데이터'필드에 비표준 개체 속성을 저장할 수 있어야합니다 (예 : 음식 개체의 칼로리 값 또는 산 개체의 높이 값).Facebook 개체 API를 사용하여 비표준 개체 속성을 만들 수 없습니다.

그러나 개체를 만들려고 할 때 개체 브라우저, 그래프 API 탐색기 또는 개체 목록의 응답에서 '데이터'필드를 볼 수 없습니다.

버그입니까? 내가 객체를 생성하는 방법

(방법 1) : 객체를 생성

NSMutableDictionary<FBOpenGraphObject> *object = [FBGraphObject openGraphObjectForPost]; 
object.provisionedForPost = YES; 
object[@"type"] = @"mangasendalpha:Template"; 
object[@"title"] = @"another one!"; 
object[@"image"] = @"http://upload.wikimedia.org/wikipedia/commons/thumb/2/23/Enchiladas_suizas.jpg/800px-Enchiladas_suizas.jpg"; 
object[@"url"] = @"https://url.com"; 

NSDictionary *data = @{@"keyword":@"haha"}; 
object[@"data"] = data; 

[FBRequestConnection startForPostOpenGraphObject:object 
           completionHandler:^(FBRequestConnection *connection, id result, NSError *error) { 
            if(error) { 
             NSLog(@"Error: %@", error); 
            } else { 
             NSLog(@"Success %@", result); 
             [self tryList]; 
            } 
           }]; 

(방법 2) :

NSString *type = @"mangasendalpha:Template"; 
NSString *title = @"hei hei can you see the data?"; 
NSString *imageUri = @"http://upload.wikimedia.org/wikipedia/commons/thumb/2/23/Enchiladas_suizas.jpg/800px-Enchiladas_suizas.jpg"; 
NSString *url = @"http://www.url.com"; 
NSString *description = @"a new template description"; 
NSDictionary *objectProperties = @{@"keyword":@"hehe"}; 

FBRequestConnection *connection = [[FBRequestConnection alloc] init]; 
FBRequest *request = [FBRequest requestForPostOpenGraphObjectWithType:type title:title image:imageUri url:url description:description objectProperties:objectProperties]; 
[connection addRequest:request completionHandler:^(FBRequestConnection *connection, id result, NSError *error) { 
    if(error) 
    { 
     LogError(@"%@",error); 
    } 
    else 
    { 
     Log(@"success:%@", result); 
     [self tryList]; 
    } 
}]; 
[connection start]; 

는 상관없이 내가 객체를 생성하는 방법, 내가 제목을 볼 수 있습니다, 이미지 등을 정확하게 입력해야합니다. "keywords = haha"라고 입력해야합니다.

그래프 API를 탐색기에서 응답의 예입니다

{ 
     "id": "106170429585804", 
     "url": "http://www.url.com/", 
     "type": "mangasendalpha:template", 
     "title": "hei hei can you see the data?", 
     "image": [ 
     { 
      "url": "http://upload.wikimedia.org/wikipedia/commons/thumb/2/23/Enchiladas_suizas.jpg/800px-Enchiladas_suizas.jpg" 
     } 
     ], 
     "description": "a new template description", 
     "updated_time": "2013-04-25T16:55:48+0000", 
     "created_time": "2013-01-09T05:51:44+0000", 
     "application": { 
     "id": "512497238785794", 
     "name": "MangaSendAlpha", 
     "url": "https://www.facebook.com/apps/application.php?id=512497238785794" 
     }, 
     "is_scraped": false, 
     "post_action_id": 524865977555471 
    } 

내가 명시 적으로 내가 아이디, 이미지 및 DATA 원하는 말, 오브젝트를 나열하려고하면 :

- (void) tryList 
{ 
NSString *path = [NSString stringWithFormat:@"/me/objects/mangasendalpha:Template?fields=id,image,data"]; 
NSDictionary *parameters = nil; 
FBRequest *request = [FBRequest requestWithGraphPath:path parameters:parameters HTTPMethod:@"GET"]; 
[request startWithCompletionHandler: 
^(FBRequestConnection *connection, 
    NSDictionary<FBGraphObject> *response, 
    NSError *error) 
{ 
    if (!error) 
    { 
     Log(@"response: %@", response); 
    } 
    else 
    { 
     Log(@"has error: %@", error); 
    } 
}]; 
} 

이가 내가 무엇을 얻을지 :

data =  (
      { 
     id = 106170429585804; 
     image =    (
          { 
       url = "http://upload.wikimedia.org/wikipedia/commons/thumb/2/23/Enchiladas_suizas.jpg/800px-Enchiladas_suizas.jpg"; 
      } 
     ); 
    }, 
      { 
     id = 386877688092664; 
     image =    (
          { 
       url = "http://upload.wikimedia.org/wikipedia/commons/thumb/2/23/Enchiladas_suizas.jpg/800px-Enchiladas_suizas.jpg"; 
      } 
     ); 
    },... 

데이터 필드는 어디입니까?

답변

1

와우. 방금 나 자신을 알아 냈어. 맞춤 속성은 Facebook 앱 설정 페이지에서 미리 정의해야합니다. > 종류 - -

  1. 이동 오픈 그래프를 선택, 왼쪽에 응용 프로그램
  2. 을 developers.facebook.com/apps/your하는
  3. 당신은 볼 것이다,> 당신이 관심이 객체 유형을 선택하면 오브젝트 프로퍼티의리스트 마법의 "속성 추가"버튼이 있습니다!

"사용자 지정"속성을 추가하면 이제 개체 API가 해당 속성을 사용하여 새 개체를 올바르게 만들 수 있습니다.