2012-05-08 3 views
0

.NET Framework 또는 Silverlight 외에는 아무 것도 사용하지 않고 사용자의 벽에 게시 할 수있는 확실한 방법이 있습니까?순수 C#을 사용하여 Facebook 피드 항목을 게시하는 확실한 안내서

사람의 시도에서 파생 된 문제는 여기에서 묻지 만 그래프 API 사양에 대한 완전하고 명확한 설명과 WebClient 또는 System.Net의 유사한 클래스를 사용하는 간단한 예는 찾을 수 없습니다.

모든 피드 항목 속성을 쿼리 문자열의 매개 변수로 보내야합니까? 피드 항목을 나타 내기 위해 JSON 객체를 생성하고 (액세스 토큰을 유일한 매개 변수로 사용하여) 전송할 수 있습니까?

5 줄 코드 스 니펫 이상은 기대하지 않습니다. 그렇지 않으면 FB 문서의 사양을 알려줍니다. 당신의 도움에 대한

감사합니다,

누가 복음

답변

1

이것은 사용자의 담벼락에 게시하는 방식입니다. 요청 본문에 게시물의 데이터를 배치합니다 (요청의 쿼리 부분에 모든 매개 변수를 포함하는 것보다 더 안정적이라고 생각합니다). URL 인코딩 된 쿼리 문자열과 동일한 형식을 갖습니다.

많은 리소스와 상호 작용하는 방법을 설명하는 데 설명서가 다소 부족하다는 데 동의합니다. 일반적으로 필드 및 연결에 대한 정보는 설명서를 참조한 다음 Graph API Explorer을 사용하여 요청을 작성하는 방법을 이해하십시오. 일단 내가 그것을 가지고있어 꽤 C# 또는 무엇이든 구현하기가 쉽다. 내가 사용하는 유일한 SDK는 Facebook의 Javascript SDK입니다. 나는 다른 사람들 (특히 제 3 자)이 내 자신을 굴리기보다 복잡하거나 버그가 있거나 깨진 것을 발견했습니다.

private void PostStatus (string accessToken, string userId) 
{ 
    UriBuilder address = new UriBuilder(); 
    address.Scheme = "https"; 
    address.Host = "graph.facebook.com"; 
    address.Path = userId + "/feed"; 
    address.Query = "access_token=" + accessToken; 

    StringBuilder data = new StringBuilder(); 
    data.Append ("caption=" + HttpUtility.UrlEncodeUnicode ("Set by app to describe the app.")); 
    data.Append ("&link=" + HttpUtility.UrlEncodeUnicode ("http://example.com/some_resource_to_go_to_when_clicked")); 
    data.Append ("&description=" + HttpUtility.UrlEncodeUnicode ("Message set by user.")); 
    data.Append ("&name=" + HttpUtility.UrlEncodeUnicode ("App. name")); 
    data.Append ("&picture=" + HttpUtility.UrlEncodeUnicode ("http://example.com/image.jpg")); 

    WebClient client = new WebClient(); 
    string response = client.UploadString (address.ToString(), data.ToString()); 
} 
+0

고맙습니다. 이것은 정확히 내가 한 것입니다. 나는 REST가 너무 단순해서 SDK 나 추상화가 다른 의존성, 기술적, 정신적 인 것을 원하지 않는다고 생각한다. –

+0

46 초 후에 뭔가 게시했습니다! 이제는 .NET을 사용하여 사용자의 벽에 게시 할 수있는 확실한 예가되었습니다. 잘 했어. –

+0

약간의 장애가 있으며 게시물은 나에게만 표시됩니다. 그래서 이것은 FB 기본값이며 사용자는 그렇지 않은 것으로 설정해야합니다. 이는 발생하지 않을 것이므로 하루가 낭비되었습니다! LOL. –

1

나는 .NET 또는 실버에 대해 잘 모르겠지만, 페이스 북의 API는 간단한 HTTP 요청과 함께 작동합니다. 모든 다른 sdks (javascript를 제외하고)는 주로 모든 요청에 ​​액세스 토큰을 추가하는 "기능"이있는 HTTP 요청에 대한 래퍼입니다.

일부 요청에서 매개 변수가 쿼리 문자열로 전송되는 경우도 있지만 일부 POST 요청에서는 요청 본문 (application/x-www-form-urlencoded)에서 매개 변수를 보내야하며 json으로 데이터를 보낼 수 없습니다.

C# sdk이 마음에 들지 않으면 정확한 요구 사항을 만들면됩니다. 필자가 작성한 것처럼 요청을 감싸기 만하면된다. 물론 json을 매개 변수로 사용하여 요청과 함께 전송할 다른 매개 변수로 나누는 메서드가있을 수있다.

나는 당신에게 페이스 북의 문서를 알려줄 것이지만, 특별히 물어 보지 않았기 때문에, landing page을 제외하고는 아무것도 가리킬 길이 없다.

+0

답장을 보내 주셔서 감사합니다. 흥미로운 부분은 rlm2의 대답에서 볼 수 있듯이 본문 인코딩이 JSON이 아닙니다! 고마워. –