나는 이것이 바보 같은 질문이 아니길 바란다. 나는이 사람과 같은 배에 타고있다. 나는 믿는다 : uploading files to Dropbox, bypassing authorization page?Dropbox API에 대한 앱 권한/인증을 무시할 수 있나요?
그러나 나는 더 자세히 설명 할 것이다.
서버 측 저장소 및 AWS S3을 지원하는 사용자 정의 asp.net 파일 업로드 컨트롤을 구축했으며 Dropbox를 추가하려고합니다. API 문서에서
는 : https://www.dropbox.com/developers/core/docs내가 먼저 토큰을 생성 응용 프로그램을 확인하고 토큰과 함께 https://www.dropbox.com/1/oauth/authorize를 호출 할 것으로 보인다.
문제는 최종 사용자가 컨트롤을 설치하고 컨트롤/보안 키를 컨트롤 설정에 추가 할 수있게하려는 것이고 페이지를로드 할 때 바로 사용할 수 있습니다.
그래서 모든 John Doe가 자신의 보관 용 계정에 파일을 업로드하고 업로드 할 수 있도록 API를 사용하고 싶지 않습니다. 나는 감각을 만들고있어
희망은 ... 여기에 몇 가지 코드입니다 :
Dim appKey As String = "myappkey"
Dim appSecret As String = "mysecretkey"
Dim uri As Uri = New Uri("https://api.dropbox.com/1/oauth/request_token")
Dim oAuth As OAuthBase = New OAuthBase()
Dim nonce As String = oAuth.GenerateNonce()
Dim timeStamp As String = oAuth.GenerateTimeStamp()
Dim parameters As String = String.Empty
Dim normalizedUrl As String = String.Empty
Dim signature As String = oAuth.GenerateSignature(uri, appKey, appSecret, String.Empty, String.Empty, "GET", timeStamp, nonce, OAuthBase.SignatureTypes.HMACSHA1, _
normalizedUrl, parameters)
signature = HttpUtility.UrlEncode(signature)
Dim requestUri As StringBuilder = New StringBuilder(uri.ToString)
With requestUri
.AppendFormat("?oauth_consumer_key={0}&", appKey)
.AppendFormat("oauth_nonce={0}&", nonce)
.AppendFormat("oauth_timestamp={0}&", timeStamp)
.AppendFormat("oauth_signature_method={0}&", "HMAC-SHA1")
.AppendFormat("oauth_version={0}&", "1.0")
.AppendFormat("oauth_signature={0}", signature)
End With
Dim request As HttpWebRequest = WebRequest.Create(New Uri(requestUri.ToString()))
request.Method = WebRequestMethods.Http.Get
Dim response As HttpWebResponse = request.GetResponse()
Dim queryString = New StreamReader(response.GetResponseStream()).ReadToEnd()
Dim parts = queryString.Split("&"c)
Dim token = parts(1).Substring(parts(1).IndexOf("="c) + 1)
Dim tokenSecret = parts(0).Substring(parts(0).IndexOf("="c) + 1)
Dim queryString2 As String = String.Format("oauth_token={0}", token)
' the below code is what I want to bypass, as in verifying the app permissions by loading a Dropbox verification page.
Dim authorizeUrl As String = "https://www.dropbox.com/1/oauth/authorize?" + queryString2
어쩌면 내가 여기에 초등학교 뭔가, 또는 아마도 온라인 예를 놓쳤다.
내 웹 사이트 방문자는 프로필 페이지의 프로필 사진을 업로드하는 것처럼이 파일 업 로더를 사용할 수 있습니다 ... 웹 사이트의 보관 용 계정입니다. 희망이 의미가 있습니다.
모든 안내에 감사드립니다.
감사합니다.
그래서 사용자가 자신의 프로필 사진을 계정에 업로드 할 수 있도록 DropBox 계정에 대한 인증을 원할 것입니까? – TyCobb
@TyCobb 수정. 소셜 사이트를 사진으로 찍어 파일 저장을 위해 파일 시스템을 사용하는 대신 Dropbox를 사용하고 싶습니다. (예 : /Dropbox/Users/Uploads/Picture.jpg) – user1447679
@ user1447679, 당신은 "정답"이라고 말했지만 나머지 부분은 일치하지 않는 것 같습니다. :-) 정말로 컨트롤을 설치하는 모든 사용자가 * your * 계정에 파일을 업로드해야한다고 말하고 있습니까? 그것은 좋은 생각처럼 보이지 않습니다. 그들이 * 자신의 * 계정에 업로드해야한다면 앱을 승인해야합니다. (그렇지 않으면 Dropbox에 쓸 수있는 권한이 없습니다.) – smarx