2013-03-06 2 views
0

RESTful API에 연결해야합니다. 회사가 API에 연결하는 유일한 예는 Python의 예입니다. 나는 언어를 이해하지 못하지만 PHP는 편합니다. cuRL 및/또는 PHP로이 작업을 수행 할 수있는 방법이 있습니까?python API 예제를 PHP로 변환

import requests 
import hmac 
import hashlib 
import datetime as dt 
import simplejson as json 
import sys 


tech_prefix = '' #the Account Tech Prefix 
secret_key = '' #the API Key 


#creating URI info 
t = dt.datetime.utcnow().replace(microsecond=0) 
timestamp = t.isoformat() 
url_scheme = 'https' 
net_location = 'api.thesite.com' 
path = '/v1/available-tns/npas/' 
method = 'GET' 
ordered_query_params = '' 
body = '' 
body_md5 = '' 
canonical_uri = url_scheme + "://" + net_location + path + "\n" + ordered_query_params 
tokens = (
    timestamp, 
    method, 
    body_md5, 
    canonical_uri 
    ) 
message_string = u'\n'.join(tokens).encode('utf-8') 
signature = hmac.new(secret_key, message_string, digestmod=hashlib.sha1).hexdigest() 

headers = {'X-Timestamp':timestamp} 
request_url = url_scheme + '://' + net_location + path + '?' + ordered_query_params # append ordered query params here 
request = requests.get(request_url,auth=(tech_prefix,signature),headers=headers) 
print request 

답변

2

예, 당신은 PHP에서이 작업을 수행 할 수 있습니다 : 여기

파이썬의 예입니다. 이 파이썬 코드는 특별한 파이썬 라이브러리를 사용하지 않습니다. 특정 헤더 및 특정 인증 정보와 함께 HTTP 요청을 보내는 것입니다. 실제로 Python에서 PHP로이 코드를 변환하는 것은 일반적인 StackOverflow 응답의 범위를 벗어납니다.

+0

+1 가능했으나하지 않았 음을 확인했습니다. –

+0

고마워, 나는 종종 곱슬 곱슬 함을 사용하지만이 API는 시간 스탬프를 필요로하고 응답 코드를 다시 보내는 API 키를 해시해야하므로 필자는 분실했다. 나는이 코드를 PHP 나 curl 예제로 변환해야이 코드를 기반으로해야한다고 생각한다. –

0

먼저 "가져 오기"는 외부 라이브러리 일 뿐이며 PHP에 내장되어 있습니다. 토큰까지의 모든 것은 변수 일뿐입니다. 날짜와 시간 메서드는 모두 PHP에서 비슷한 기능을합니다. 그런 다음 "토큰"은 단지 배열입니다. 그런 다음 "message_string"에는 Javascript에서 볼 수있는 것과 유사한 "결합"및 "인코딩"메소드가 있습니다. "서명"은 다소 혼란 스럽지만 기본적으로 암호화를 수행하고 PHP는 비슷한 기능을합니다. 파이썬은 잘 문서화되어 있으므로 파이썬의 함수를 살펴보고 어떤 PHP 함수가 유사한 지 알아낼 수 있어야합니다. "서명"후에는 모든 변수를 HTTP 요청으로 어셈블하고 전송합니다.

파이썬 및 PHP (및 자바 스크립트)는 C 기반 언어입니다. 당신이 좋은 사람이라면 좋은 참고 자료가있는 한 다른 사람을 알아낼 수 있습니다. 그리고 파이썬은 잘 설명되어 있으므로 파이썬 메소드 나 함수를 검색하면 PHP와 동등한 정보를 얻을 수 있습니다.

API는 결코 재미가 없지만 불가능하지는 않습니다. 그들 대부분은 당신이 조립해야하는 HTTP 요청 일 뿐이며 응답을 분석합니다. 약간의 트릭입니다. API 설명서 나 포럼 (포럼이있는 경우) 또는 기술 지원부에서 HTTP 요청이 어떻게 표시되는지 예를 들어보실 수 있습니다. 그런 다음 PHP로 빌드 할 수 있습니다.

마무리 메모로 언어 간 변환 방법을 배우는 것이 좋습니다. 이것이 처음 경험 인 것처럼 들리지만 대부분의 웹 개발자는 정기적으로 그리고 다양한 언어 (파이썬, C++, ASP, 루비 등)를 사용합니다. 내가 과거에 만난 것을 바탕으로, 당신은 변환하기 매우 간단합니다. 마지막 API에 대한 예로서 그 점을 알고 싶었습니다.