Erişim ve Güvenlik

api.ipsizcambaz.com servisleri 1 Ocak 2024 tarihinde kapanacaktır. Lütfen o tarihe kadar kullandığınız servislerde 'api.ipsizcambaz.com' adresini 'api.allesgo.com' olarak değiştirin. Servis istek ve cevaplarında herhangi bir değişiklik yapılmamıştır.

İki Aşamalı Erişim

allesgo.com API servislerine erişmek iki aşamalı doğrulamayla gerçekleştirilir

  • Access Token üretmek
  • Access Token'ı isteğe dahil etmek
1. Access Token Üretmek

API servislerine atılacak her bir istekle birlikte, tek seferlik üretilen, 6 saat için geçerli olacak ve kullanılan IP adresine özel bir Access Token Query Strings alanına dahil edilmelidir

Bu Access Token'ı elde etmek için iki şeye ihtiyacınız olacak; allesgo.com tarafından size özel, tek seferlik üretilen client_key ve client_secret ikilisi. Bu sayfanın sonundaki API Referansı bölümünde örneğini görebilirsiniz. Bu ikiliyi kullanarak 6 saat geçerli olacak bir Access Token elde edeceksiniz.

Bu servisten elde ettiğiniz Access Tokenı isteklerinize dahil ederek güvenli bir şekilde allesgo.com'daki servislere erişebilirsiniz.

2. Access Token'ı İsteğe Dahil Etmek

Eğer farklı IP adreslerinden allesgo.com API servislerine istek atacaksanız; bir önceki adımda elde etmiş olduğunuz Access Token'ı 6 saat için saklamalısınız. Farklı lokasyonlardan eş zamanlı erişim sağlarken her bir IP adresi için ayrı ayrı Access Token’ler üretmeniz gerekir.

Örnek olarak allesgo.com üzerindeki İl ve İlçe bilgilerini elde etmek istiyorsanız. Aşağıda belirtildiği gibi elde ettiğiniz Access Token'ı Query String olarak dahil etmeniz gerekir.

        
curl -X GET \ 'https://api.allesgo.com/v1.0/city?access_token={ACCESS_TOKEN}' \ -H 'Accept: application/json' \ -H 'Cache-Control: no-cache' \ -H 'Connection: keep-alive' \ -H 'Host: api.allesgo.com' \ -H 'cache-control: no-cache'

allesgo.com API servislerine bir saat içinde atabileceğiniz istek sayısında kısıtlama bulunduğunu unutmamalısınız. Dolayısıyla yapılan her istekten önce yeni bir Access Token üretmek yerine, ürettiğiniz Access Token'ı 6 saat boyunca saklamanızı öneriyoruz.

Güvenlik ve İzinler

Allesgo API izinleri, genel servisler ve mağaza servisleri olmak üzere iki türden oluşmaktadır.

Genel servislere örnek olarak: allesgo.com'da bulunan mağazadan bağımsız olarak ürün arama, kategori listesi veya il ve ilçeler listesi verilebilir. Bu izinler size allesgo.com tarafından verilir.

Mağazaya özel servislerin izin yönetimi ise mağazalar tarafından yapılır. Mağaza allesgo.com'a giriş yaptıktan sonra mağaza yönetim sayfası (Konsol) üzerinden sizi bulur ve uygulamanıza istediği izinleri tanımlar.

Bu aşamadan sonra mağaza ID'sini kullanarak API servislerine istek attığınız zaman mağaza sahibinin verdiği izinler dahilinde mağazaya ait tüm verilere erişebilirsiniz.

Aşağıdaki örnekte ID'si belirtilmiş olan mağazaya son 3 günde ulaşmış ve henüz onaylanmamış siparişlerin listesini görebilirsiniz. Mağaza ID'sini URL Parametresi olarak gönderdiğimizi unutmamanız önemlidir.

        
curl -X GET \ 'https://api.allesgo.com/v1.0/category/order/store/{STORE_ID}?days={DAYS}&status=0&access_token={ACCESS_TOKEN}' \ -H 'Accept: application/json' \ -H 'Cache-Control: no-cache' \ -H 'Connection: keep-alive' \ -H 'Host: api.allesgo.com' \ -H 'cache-control: no-cache'

API Referansı

Bu aşamadan sonra mağaza ID'sini kullanarak API servislerine istek attığınız zaman mağaza sahibinin verdiği izinler dahilinde mağazaya ait tüm verilere erişebilirsiniz.

ENDPOINT POST /app/auth/access
Kopyala
Örnekler

Curl ile istek atmak için bu örnek kullanılabilir.

        
curl -X POST \ https://api.allesgo.com/app/auth/access \ -H 'Cache-Control: no-cache' \ -H 'Connection: keep-alive' \ -H 'Content-Type: application/json' \ -H 'Host: api.allesgo.com' \ -H 'cache-control: no-cache' \ -d '{ "client_key": "{CLIENT_KEY}", "client_secret": "{CLIENT_SECRET}" }'

PHP ile istek atmak için bu örnek kullanılabilir. Örnekte Curl kullanılmaktadır.

        
<?php $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "https://api.allesgo.com/app/auth/access", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => array( "client_key" => "{CLIENT_KEY}", "client_secret" => "{CLIENT_SECRET}" ), CURLOPT_HTTPHEADER => array( "Accept: */*", "Cache-Control: no-cache", "Connection: keep-alive", "Content-Type: application/json", "Host: api.allesgo.com", "cache-control: no-cache", ), )); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; }

Python ile istek atmak için bu örnek kullanılabilir. Bu örnekte Python'un requests kütüphanesi kullanılır ama http.client gibi kütüphane kullanılabilir

        
import requests url = "https://api.allesgo.com/app/auth/access" payload = { 'client_key': '{{CLIENT_KEY}}', 'client_secret': '{{CLIENT_SECRET}}' } headers = { 'Accept': "application/json", 'Cache-Control': "no-cache", 'Host': "api.allesgo.com", 'Connection': "keep-alive", 'cache-control': "no-cache" } response = requests.request("POST", url, data=payload, headers=headers) print(response.text)

Node.js ile istek atmak için bu örnek kullanılabilir. Örnekte request kullanılmaktadır.

        
var request = require('request'); var options = { method: 'POST', url: 'https://api.allesgo.com/app/auth/access', headers: { 'cache-control': 'no-cache', Connection: 'keep-alive', Host: 'api.allesgo.com', 'Cache-Control': 'no-cache', Accept: '*/*', 'Content-Type': 'application/json', }, body: { client_key: '{CLIENT_KEY}', client_secret: '{CLIENT_SECRET}', }, json: true, }; request(options, (error, response, body) => { if (error) throw new Error(error); console.log(body); });

Javascipt ile istek atmak için bu örnek kullanılabilir. Örnekte xhr kullanılmakdır. Not: Bilgi amaçlıdır. Javascipt ile yazılan bu kod'ta Kullanıcı access token'a erişebildiğinden, kullanmanızı önermiyoruz.

        
var data = JSON.stringify({ client_key: '{CLIENT_KEY}', client_secret: '{CLIENT_SECRET}', }); var xhr = new XMLHttpRequest(); xhr.withCredentials = true; xhr.addEventListener('readystatechange', function () { if (this.readyState === 4) { console.log(this.responseText); } }); xhr.open('POST', 'https://api.allesgo.com/app/auth/access'); xhr.setRequestHeader('Content-Type', 'application/json'); xhr.setRequestHeader('Accept', '*/*'); xhr.setRequestHeader('Cache-Control', 'no-cache'); xhr.setRequestHeader('Host', 'api.allesgo.com'); xhr.setRequestHeader('Connection', 'keep-alive'); xhr.setRequestHeader('cache-control', 'no-cache'); xhr.send(data);

C Sharp ile istek atmak için bu örnek kullanılabilir. Bu örnekte RestSharp kullanılmaktadır.

        
var client = new RestClient("https://api.allesgo.com/app/auth/access"); var request = new RestRequest(Method.POST); request.AddHeader("cache-control", "no-cache"); request.AddHeader("Connection", "keep-alive"); request.AddHeader("Host", "api.allesgo.com"); request.AddHeader("Cache-Control", "no-cache"); request.AddHeader("Accept", "*/*"); request.AddHeader("Content-Type", "application/json"); var body = new { client_key = "{CLIENT_KEY}", client_secret = "{CLIENT_SECRET}", }; request.AddJsonBody(body); IRestResponse response = client.Execute(request);

Java ile istek atmak için bu örnek kullanılabilir. Örnekte Ok Http kullanılmaktadır.

        
OkHttpClient client = new OkHttpClient(); MediaType mediaType = MediaType.parse("application/json"); RequestBody body = RequestBody.create(mediaType, "{\"client_key\": \"{CLIENT_KEY}\",\"client_secret\": \"{CLIENT_SECRET}\"}"); Request request = new Request.Builder() .url("https://api.allesgo.com/app/auth/access") .post(body) .addHeader("Content-Type", "application/json") .addHeader("Accept", "*/*") .addHeader("Cache-Control", "no-cache") .addHeader("Host", "api.allesgo.com") .addHeader("Connection", "keep-alive") .addHeader("cache-control", "no-cache") .build(); Response response = client.newCall(request).execute();
API Referansı

POST Request Payload

Parametre Türkçe Tür Zorunlu Geçerli Değerler Varsayılan Açıklama
client_key Müşteri Anahtarı String true Müşteri Anahtarı
client_secret Müşteri Şifresi String true Müşteri Şifresi

Sunucudan dönecek cevabın örneği.

        {
  "data": {
    "status": "String",
    "access_token": "String",
    "expires_at": "Date",
    "message": "String",
    "message_tr": "String"
  }
}