Swift1.2로 Dribble의 OAuth를 해봤어요.
6830 단어 Swift
도서관도 많지만 일단 해보자는 정신으로 실행에 옮겼다.
GitHub
먼저 원본 코드를 거기에 두고...
ryokosuge/Oauth2Dribbble
OAuth2 돌파 전 과정
먼저 계획적인 것을 소개합니다.
취득
access_token
이번에 사용한 API는 드라이버블로, 드라이버의 경우 대화를 나눴고, 다른 API도 크게 다르지 않았다.
방문지도 다르다.
그래서 (대략) Qita의 API(ver2.0)도 통용할 수 있다고 생각합니다.
그럼 하나하나 설명해 주세요.
1. Dribble를 통해 Application 등록
Dribbble Developer에서 애플을 등록하세요.
Register an Application
버튼을 누르면 등록 화면에 들어갑니다.항목 가져오기 정보
register application
를 누르면 완성됩니다.Client ID
와 Client Secret
를 적어 주십시오.2. URLScheeme에서 call back URL 설정
이거 안 하면 웹에서 인증하고 다시 응용 프로그램으로 돌아가면 끝이에요.
이걸 캡처해서 설명하고 싶어요.
Drivbble의 설정 사항
여기의 Callback URL은 Xcode를 URLScheeme으로 설정합니다.
XCode 설정
그러면 웹 인증 후 값이 반환됩니다.
3. 실제 인증 화면 열기
그럼 실제적으로 원본 코드로 설명해 드릴게요.
화면은 이런 느낌이야.
버튼을 누르면 Safari를 사용하여 인증 화면을 표시합니다.
아래와 같은 URL을 만들어 두드려라
UIApplication.sharedApplication().openURL(_:)
.let authorizeURL = "https://dribbble.com/oauth/authorize?client_id=\({Client ID})&redirect_uri=\({Callback URL})&scope=public&state=DRIBBBLE"
if let authURL = NSURL(string: authorizeURL) {
UIApplication.shreadApplication().openURL(authURL)
}
API의 사양은 다음을 참조하십시오.http://developer.dribbble.com/v1/oauth/#web-application-flow
사파리에 로그인 화면이나 인증 화면이 나오면 인증해주세요.
만약 순조롭게 진행된다면, 나는 응용 프로그램으로 돌아갈 수 있을 것이라고 생각한다.
만약 돌아오지 않았다면
redirect_uri의 지정이 잘못된 것 같습니다. Dribble의 Application 정보와 URLSchemae를 비교해 주십시오.
4. 콜백에서 가치post 받기
http://developer.dribbble.com/v1/oauth/#web-application-flow
2쪽.Dribbble redirects back to your site.이 경우
code
와 state
값의 콜백 URL이 맞아서 받고 싶어요access_token
.수령 방법
AppDelegate.swift
에 다음 방법을 추가하십시오.AppDelegate.swift
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject?) -> Bool {
return true
}
이 방법openURL
의 값은 콜백을 통해 되돌아오는 값이다.나는 아래의 회답이 있을 것이라고 생각한다.
oauth-dribbble://oauth/callback?code=xxxxxxxx&state=DRIBBBLE
위 URL의query에서 code
를post로client_id
와client_secret
,redirect_uri
request를 추출합니다.5. https://dribbble.com/oauth/token데이터를 얻다
리퀘스트가 성공하면
{
"access_token" : "29ed478ab86c07f1c069b1af76088f7431396b7c4a2523d06911345da82224a0",
"token_type" : "bearer",
"scope" : "public write"
}
(상술한 반응은 샘플이기 때문에 규격적으로도 전혀 의미가 없다.)이런response는 되돌아오기 때문에 가져오고 저장하는 형식이 됩니다.
창설된 학급
우리는 상술한 처리를 포장하는 종류를 만들었다.
잘 어울리지만 참고가 됐으면 좋겠습니다.
OauthDribbble.swift
원본 코드가 매우 깁니다. 링크에서 용서해 주십시오...
끝맺다
나 혼자.0에 익숙하지는 않지만 다른 API 규격일 때는 만져보는 게 좋을 것 같아요.
무슨 문제가 있으면 저에게 연락 주세요.
Reference
이 문제에 관하여(Swift1.2로 Dribble의 OAuth를 해봤어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ryokosuge/items/2b946504710ff856ed34텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)