Коннектор php к openAPI Тинькофф Инвестиции
пытаюсь написать простой код на php для получения данных с сервера Тинькофф, на сайте компании https://tinkoffcreditsystems.github.io/invest-openapi/auth/ приведён пример кода на JAVA (наверное)
Authorization: Bearer {TOKEN}
Пример:
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"log"
"net/http"
"strings"
"time"
)
const (
token = "just_place_token_here"
timeout = time.Second * 3
url = "https://api-invest.tinkoff.ru/openapi/sandbox/sandbox/register"
)
func main() {
client := &http.Client{
Timeout: timeout,
}
req, err := http.NewRequest("POST", url, nil)
if err != nil {
log.Fatalf("Can't create register http request: %s", err)
}
req.Header.Add("Authorization", "Bearer "+token)
resp, err := client.Do(req)
if err != nil {
log.Fatalf("Can't send register request: %s", err)
}
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
log.Fatalf("Register, bad response code '%s' from '%s'", resp.Status, url)
}
respBody, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatalf("Can't read register response: %s", err)
}
type Register struct {
TrackingID string `json:"trackingId"`
Status string `json:"status"`
}
var regResp Register
err = json.Unmarshal(respBody, ®Resp)
if err != nil {
log.Fatalf("Can't unmarshal register response: '%s' \nwith error: %s", string(respBody), err)
}
if strings.ToUpper(regResp.Status) != "OK" {
log.Fatalf("Register failed, trackingId: '%s'", regResp.TrackingID)
}
fmt.Println("Register succeed")
}
Хочу получить данные биржевых котировок и записать в sql таблицу для дальнейшего анализа и вывода данных. К сожалению с java не особо знаком, поэтому сложно разобраться самостоятельно, да и конекторы,кроме как к mySQL никогда не писал. Прошу помочь переделать код в php.
Ответы (1 шт):
Это не Java, а Go. Да и весь пример сводится к тому, как выполнить произвольный запрос с указанием заголовка Authorization..
На php, с guzzle можно было бы например так:
$token = 'ваш_токен';
$client = new GuzzleHttp\Client([
'base_uri' => 'https://api-invest.tinkoff.ru/openapi',
'headers' => [
'Authorization' => "Bearer $token"
]
]);
$stocks = $client->get('market/stocks'); // запрос акций через rest api
Но на php давно не пишу, да и учетной записи в "Тиньков-инвестиции" у меня нет, что бы проверить - все исключительно по описанию указанному в них в документации.
Другой вариант - не заморачиваться с этим, и просто воспользоваться уже готовой библиотекой для php, которая указана в описании к официальному репозиторию OpenApi Тиньков-Инвестиции