Rest api를 c# 윈폼에서도 사용할수 있을까요?

C# 윈폼으로 “카카오톡 나에게 보내기” 기능을 구현하려고 합니다.

로그인부터 헤메고 복잡합니다 ㅠ ㅠ

일단 로컬로 사용할 예정입니다. 개인적으로 사용할 예정이라 테스트 중입니다,

  • 윈폼으로 가능할까요?
  • 로컬로 사용하는건 Access token 받을 필요없나요?
  • 그럼 Bearer 에 뭘 넣어야하죠? API 키는 어디에 넣어야할까요?
  • Access token 필수라면 로그인 어떻게 해야할까요?
  • contents는 JSON 형식으로 넘겨줘야하나요?
  • C#으로 구현한 예제 있는 곳 알려주시면 정말 감사할것 같습니다.
  • Redirect는 꼭 있어야하나요?

@otacle

데스크탑 애플리케이션만으로는 구현하기 쉽지 않을거 같습니다.
개발자 사이트를 보셨으면 아시겠지만, 저희가 주로 제공하는 범위는 네이티브앱(Android, iOS)와 웹앱(JavaScript), REST API (서버용)입니다.
윈폼에서 REST API를 호출하는 것은 어렵지 않아요. 그런데 처음에 로그인 절차가 윈폼으로 어떻게 구현할지 제가 해보지 않아서 잘 모르겠습니다.

  1. 로그인을 하려면 윈폼에서 웹브라우저 객체를 통해서 authorize url를 호출해서 동의화면을 사용자에게 보여지면 이 때 확인을 눌러 authorize code를 받급을 받습니다.

[요청]

GET /oauth/authorize?client_id={app_key}&redirect_uri={redirect_uri}&response_type=code HTTP/1.1
Host: kauth.kakao.com

이 부분에서…웹브라우저 객체가 동의화면을 일반 크롬, 사파리, 최신IE 브라우저와 유사게 제대로 보여질지는 확인해 보셔야겠네요.

[응답]

HTTP/1.1 302 Found
Content-Length: 0
Location: {redirect_uri}?code={authorize_code}

이 부분이 가장 중요한 포인트가 될거 같은데요. 웹브라우저 객체 안에 code 값이 있는 url을 윈폼으로 가져와야 합니다.
제가 이걸 어떻게 구현되는지는 잘 모르겠네요 ㅠㅠ

  1. /oauth/token API를 통해 access token/refresh token을 발급 받으면 됩니다.

[요청]

curl -v -X POST https://kauth.kakao.com/oauth/token \
 -d 'grant_type=authorization_code' \
 -d 'client_id={app_key}' \
 -d 'redirect_uri={redirect_uri}' \
 -d 'code={authorize_code}'

[응답]

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
    "access_token":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "token_type":"bearer",
    "refresh_token":"yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy",
    "expires_in":43199,
    "scope":"Basic_Profile"
}
  1. 또한 access token은 12시간이 지나면 만료되기 때문에 refresh token으로 주기적으로 갱신이 필요합니다.

이렇게 하시는게 불편하시면, 로그인하는 웹앱을 간단히 만들고 access/refresh token을 받아서 서버쪽에서 갱신해 주는 방법이 있습니다.

로컬에서 작업하시더라도 access token 이 필요합니다. 이유는 리모트에 있는 저희 서버로 요청을하고 있어서요.

저 위에서 설명드린대로 access token 받을걸 API 호출 시에 넣어주셔야 합니다.

JSON 형태로 인코딩해서 보내시면 됩니다.

예제는 준비된게 없습니다. 어딘가에선 하시고 있을거 같네요.

REST API를 사용하여 로그인(인증)하실 때는 사이트 도메인 정보와 redirect path는 필수적입니다.
저희 인증서버로 호출 후 처리된 다음 이동할 url이 필요합니다.

위에서도 말씀드렸지만, 저 같으면 일반 웹앱을 만들어서 로그인 처리를 하고 서버에서 토큰을 주기적으로 재갱신해 주고, 윈앱에선 API 호출만 주고 할거 같습니다.

예상치못한 자세하고 친절한 답변에 먼저 감사드립니다 ^ ^

C# 카카오 스토리 이미지 포스팅 에러 이 링크의 방법을 보고 방법만 알면 쉬울거같았는데 아니네요.

1번째 방법) 웹브라우저 컴포넌트 사용 → 할수 있을것도 같습니다
2번째 ) 웹앱 이용: 이걸 구현하려면 결국 서버를 하나 구축해야하는거 아닌가요?

당초 개발 목적이 서버 안쓰고 윈폼 프로그램에서 바로 폰으로 데이터 전송하고 싶었거든요. 서버를 잘 몰라서요. 뭔가 다른 방법을 찾아보거나 해야겠네요. 페이스북api나… 음… 뭔가 있을거같은데.

일단 웹브라우저로 시도해보고 또 문의드리겠습니다!

좋은하루 보내세요!

1개의 좋아요

혹시 C#에서 윈폼으로 구현 하셨나요?
하셨다면 예제 혹시 가능할까요? 로그인부터 막히네요…