2011-10-07 3 views
5

트위터 API에 액세스해야하는 데스크톱 응용 프로그램을 개발하는 동안 응용 프로그램에 대한 API 키 (응용 프로그램 관련 소비자 키 및 소비자 암호)를 사용자에게 전달해야합니다. Twitter의 API TOS에는 애플리케이션의 API 키를 공개적으로 사용할 수 없다고 명시되어 있으며 이러한 경우 API 키가 재설정됩니다. 해당 애플리케이션이 GPL하에있을 때, 개발자가 소스 코드를 사용자에게 제공해야한다는 것을 의미하며 공개적으로 사용 가능하지 않은 상태에서 API 키를 얻을 수있는 방법은 무엇입니까? 이 문제를 해결할 수있는 표준 방법이 있습니까? 감사합니다. .GPL 데스크톱 애플리케이션에서 트위터 API 키를 처리하는 표준 방법은 무엇입니까?

편집 : 상황을 명확히하기 위해 나는 의식적 결정까지 내 코드 cree.py에 대한 일반 텍스트로 저장했습니다. 그들이 저장되거나 외부 활동을 위해 사용됩니다 특히

C. 당신은 다른 개발자의 소비자 키 또는 소비자의 비밀을 권유해서는 안 :하지만 어제 트위터 지원 팀은 내 키를 reseted하고 자신의 추론은 다음과 같은 것을 나에게 연락 그 개발자의 통제. 손상된 키와 비밀은 Twitter에서 재설정됩니다. 예를 들어 "트위터 브랜딩"서비스를 제공하기 위해 이러한 값을 요구하는 온라인 서비스는 허용되지 않습니다. https://dev.twitter.com/terms/api-terms 응용 프로그램의 키가 공개적으로 게시되면 외부 당사자가 응용 프로그램의 API 액세스를 납치 할 수 있습니다. 이는 엄청난 학대 위험을 가져 오며 API 키를 재설정합니다. 이러한 키가 공개적으로 게시되지 않도록주의하십시오. 그 조금 덜 수 있도록,

# yes, this is plaintext. obfuscation would be ludicrously easy to crack, 
# and there is no way to hide them effectively or fully in a Perl script. 
# so be a good neighbour and leave this the fark alone, okay? stealing 
# credentials is mean and inconvenient to users. this is blessed by 
# arrangement with Twitter. don't be a d*ck. thanks for your cooperation. 
$oauthkey = (!length($oauthkey) || $oauthkey eq 'X') ? 
     "XXXXXXXXXXXXXXXXXXXXX" : $oauthkey; 
$oauthsecret = (!length($oauthsecret) || $oauthsecret eq 'X') ? 
     "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" : $oauthsecret; 

(나는 X가와 실제 키를 대체했다 :

감사합니다, 트위터 API 정책

+0

트위터가 당신을 보호 할 것을 주장한다면 트릭터가 당신을 보호하기를 원한다면, cree.py를 두절해야합니다. 한 부분은 당신과 당신이 관리하는 프록시 서버이며 모든 cree.py 변형이 트위터에 묻습니다. 그렇지 않으면 cree.py를 사용하고자하는 각자가 자신의 키 세트를 가지고 있어야합니다. – adamo

+0

TOS를 위반하는 "명예 시스템"에 대해서는 꽤 절대적이었습니다. 나는 그들의 API, 그들의 규칙을 추측한다. 모든 요청을 프록 싱하는 것은 번거롭기 때문에 처음에는 각 클라이언트에 응용 프로그램 API 키를 제공하는 서버를 설정할 수 있습니다. 그러나 트위터 API (즉 트위터 클라이언트)에 액세스하는 GPL 데스크톱 응용 프로그램이 충분하므로 "표준"절차에 대한 생각을 찾고 있습니다. –

답변

1

음, TTYtter는 분명히 명예 시스템을 사용 누군가는 그들을 학대하기 위해 곤경에 빠지 겠지만, 그들이 실제 출처에서 충분히 존재한다는 것을 안심하십시오!)

또한, 저는에 아무것도 표시되지 않습니다.실제로 이 필요합니다. 비밀로 유지하려면을 사용해야합니다. 내가 본 가장 가까운 것은 "키와 비밀이 침해 된 것은 Twitter에서 재설정됩니다."; 그들은 실제로 "손상된"것이 무엇을 의미하는지 결코 말하지 않습니다.

+0

더 명확하게하기 위해 질문을 업데이트했습니다. 나는 7 개월 동안 명예 시스템을 지금 사용하고 있었지만 작동했다. 그러나 어제의 twitter API 지원은 나를 보호하고 내 키를 재설정해야한다고 결정했다. –

1

여기에 밀도가있을 수 있지만 구성 파일, Windows 레지스트리 등에 저장하고 거기에서 가져 오지 않는 이유는 무엇입니까? 그런 다음 파일없이 응용 프로그램을 배포하면 완료됩니다.

+0

이 계획의 문제점은 모든 사용자가 자신의 API 키를 가져와야한다는 것입니다. 그들은 아마하고 싶지 않을 것입니다. 대다수의 사용자가 바이너리를 다운로드하여 실행하기를 원한다면 다른 사용자가 스스로 구성 할 것을 기대하는 라이브러리를 작성하는 것이 합리적인 해결책이지만 그렇게 좋지는 않습니다. –

+0

응용 프로그램을 사용하여 access_token 및 access_token_secret을 한 번 (예 : OOB/PIN 인증 사용) 얻은 다음 자격 증명을 저장할 수 있습니다. 거기에서 (그리고 응용 프로그램을 다시 시작하면) 인증됩니다. – reiniero

+0

@me_ 및 API 키는 액세스 토큰 및 비밀번호가 아니라 소비자 키와 소비자 비밀번호입니다. 처음 액세스 할 때 OOB/PIN 인증을 통해 액세스 토큰과 암호가 처리됩니다. 이것은 문제가되지 않습니다. 그러나이 질문은 소비자 키와 소비자 암호를 데스크톱 응용 프로그램에 배포하고 저장하는 방법에 관한 것입니다. –

0

어쩌면 다른 솔루션은 서버를 사용하는 것, 서버가 트위터의 API와 상호 작용, 그리고 당신이 당신의 데스크톱 응용 프로그램이 같이

와 서버에 정보를 요청, API 키는 서버에 저장됩니다 , 그리고 어떤 사용자도 그것을 얻을 수 없습니다.

관련 문제