-1

Flask-OAuthlib을 사용하고 있습니다. 로컬 개발 환경에서는 잘 작동하지만 라이브 GAE 환경에 코드를 배포하자마자 다음 오류 :GAE에서 비 암호화 인코딩 된 문자열 오류를 디코딩하려하지만 로컬 개발 환경에서는 그렇지 않습니다.

File "/base/data/home/apps/s~xxxx/test-20141215.381476653039842303/lib/oauthlib/common.py", line 129, in urldecode 
    raise ValueError(error % (set(query) - urlencoded, query)) 
ValueError: Error trying to decode a non urlencoded string. Found invalid characters: set([u'!']) in the string: 

! 캐릭터가 로컬에서 잘 작동하므로 앱을 배포 할 때 문제가 무엇인지 이해하지 못합니다.

저는 Python 2.7.6을 로컬로 사용하고 있습니다. uri = add_params_to_uri(url, params)이 특정 문제에 대한 해결책이

답변

0

하나는 oauthlib 편집 할 oauthlib.common의 부품/common.py 라인 110 :

변경 :

내가 사용하는 URL 요청에 대한

urlencoded = set(always_safe) | set('=&;%+~,*@') 

사람 :

urlencoded = set(always_safe) | set('=&;%+~,*@!') 

그리고 나서! 캐릭터는 GAE 라이브 환경에서도 허용됩니다.

+0

원래 라이브러리를 개선해야하는 경우 풀 요청을 할 수 있습니다. https://github.com/idan/oauthlib/blob/master/oauthlib/common.py#L110 –

+1

풀 요청을 생성했습니다. 여기 https://github.com/idan/oauthlib/pull/305 – artooro