2011-12-04 5 views
0

Appcelerator를 사용하여 iOS 앱을 만들고 Facebook API 모듈에서 빌드를 만들고 있습니다. 사용자를 대신하여 체크인을 게시하는 방법을 찾아야합니다. 사용자는 위치 및/또는 특정 FB 페이지에서 체크인 할 수 있어야합니다. 이것이 가능한가? 상태 메시지를 게시 할 수는 있지만 위치 (장소)를 추가 할 수는 없습니다.Facebook 사용자를위한 체크인 게시 방법

답변

3

Titanium.Facebook.requestWithGraphPath 메소드에 액세스 할 수있는 Facebook의 Graph API를 사용해야 할 수도 있습니다. This blog post은 이것이 iOS에서 어떻게 수행되는지 설명하지만 워크 플로우는 동일합니다. 저자는 Facebook의 API가 최근에 변경되었다고 말했지만 YMMV - 나는 Facebook 개발자 리소스에서 명시적인 문서를 찾을 수 없었습니다.

  • 는 사용자를 대신하여 체크인을 게시하려면, 당신은 "publish_checkins"를 가질 필요가 확장 된 권한은
  • 찾기 사용자의 장치의 위도와 경도를 가져 오기 사용자
  • 에 의해 앱에 부여한 그래프 API에서 요청하여 사용자 위치 근처의 장소 목록
  • 사용자가 장소를 선택할 수 있도록 허용
  • PlaceID, 사용자 좌표 및 경로가 포함 된 경로 "me/checkins"를 사용하여 Facebook 그래프 API에 POST 요청을 보냅니다. 선택적 태그 (친구 ID) 및 상태 메시지 여기
    Titanium.Facebook.permissions = ['publish_checkins']; 
    Titanium.Facebook.authorize(); 
    

    는 (GET 요청을 만들기 위해 Titanium.Network.createHTTPClient를 사용)를 사용하는 것 예 URL의에 : 전자
  • 여기

는 사용자로부터 적절한 권한을 요청 줄 방법

https://graph.facebook.com/search?q=coffee&type=place&center=37.76,122.427&distance=1000

그런 다음 테이블보기에서 그 장소를 나열 장소의 목록을 발견하고 사용자가 하나를 도청 할 때, 당신은 당신이 장소의 ID를 가정하는 체크인을 만들 POST, 그 협의하여 궁둥이 적절에 이름 변수 :

var data = { 
    place: placeID 
    coordinates: { 
     latitude: latitude, 
     longitude: longitude 
    } 
    message: message, 
    tags: [ 
     // tagged users (optional) 
    ] 
}; 


Titanium.Facebook.requestWithGraphPath('me/checkins', data, 'POST', function(e) { 
    if (e.success) { 
     alert("Success! Returned from FB: " + e.result); 
    } else { 
     if (e.error) { 
      alert(e.error); 
     } else { 
      alert("Unknown result"); 
     } 
    } 
}); 

당신은 API가 변경된 경우 당신이 페이스 북에 보내기 속성을 조정할 필요가 수 있지만 일반적인 방법은 올바른 것입니다.

관련 문제