> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flextell.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Uygulama Oluşturma

> Flextell panelinden OAuth 2.0 uygulamanızı oluşturun ve client_id / client_secret alın.

Flextell API'ye bir istek atmadan önce, Flextell panelinde bir **OAuth uygulaması** oluşturmanız gerekir. Bu uygulama sizin entegrasyonunuzu temsil eder — bir `client_id`, bir `client_secret`, onaylı `redirect_uri`'ler ve talep ettiğiniz `scope` listesi tutar.

## Adımlar

<Steps>
  <Step title="Panele giriş yapın">
    [`https://app.flextell.ai`](https://app.flextell.ai) (veya sandbox için [`https://dev.flextell.ai`](https://dev.flextell.ai)) üzerinden giriş yapın.
  </Step>

  <Step title="Uygulamalar sayfasını açın">
    Sol menüden **Bağlantılar → Uygulamalar** adımını takip edin.

    <Note>
      Bu sayfada yalnızca **sizin oluşturduğunuz** uygulamalar listelenir.
    </Note>
  </Step>

  <Step title="Yeni uygulama ekleyin">
    Sağ üstteki **Yeni** butonuna tıklayın. Aşağıdaki alanları doldurun:

    <ParamField path="Uygulama Adı" type="string" required>
      Entegrasyonunuzu tanımlayan açıklayıcı bir isim. Kullanıcılara yetkilendirme ekranında bu isim gösterilir.
    </ParamField>

    <ParamField path="Yönlendirme URI'leri" type="string[]" required>
      OAuth akışında Flextell'in `code`'u geri göndereceği URL'ler. En az bir tane olmalıdır. Yerel geliştirme için `http://localhost:3000/callback` geçerlidir; production için tam HTTPS URL kullanın.
    </ParamField>

    <ParamField path="Çıkış Sonrası Yönlendirme URI'leri" type="string[]">
      OpenID Connect `end_session_endpoint` ile logout yapıldığında kullanıcının yönlendirileceği URL'ler. Opsiyoneldir.
    </ParamField>

    <ParamField path="İzinler (scopes)" type="string[]" required>
      Uygulamanızın talep edeceği izinler. En az bir scope seçmelisiniz. Tam liste: [Scopes](/authentication/scopes).
    </ParamField>
  </Step>

  <Step title="client_secret'ı güvenli yere kaydedin">
    Uygulama oluşturulduğunda panel size `client_id` ve `client_secret` değerlerini gösterir.

    <Warning>
      `client_secret` **yalnızca bir kez** gösterilir. Kaybederseniz uygulamayı silip yeniden oluşturmanız gerekir. Secret'ı parola yöneticisi, ortam değişkeni veya vault gibi güvenli bir ortamda saklayın. Kaynak kodunuza veya versiyon kontrolüne **asla** commit etmeyin.
    </Warning>
  </Step>
</Steps>

## Redirect URI kuralları

* HTTPS kullanın. Yerel geliştirme için `http://localhost` ve `http://127.0.0.1` istisnadır.
* Tam eşleşme zorunludur. Yetkilendirme isteğinde gönderilen `redirect_uri`, kayıtlı URI'lerden biriyle **birebir** eşleşmelidir (path, query string, trailing slash dahil).
* Her uygulama için birden fazla URI tanımlayabilirsiniz; örneğin prod ve staging için.
* Fragment (`#...`) içeren URI'ler kabul edilmez.

## Birden fazla ortam için ayrı uygulamalar

Sandbox ve production ortamları birbirinden tamamen izoledir. Sandbox'ta oluşturduğunuz `client_id`/`client_secret` production'da çalışmaz. Her iki ortamda da ayrı uygulamalar açmanızı öneririz.

```bash theme={null}
# .env.local
FLEXTELL_BASE_URL=https://dev.flextell.ai
FLEXTELL_CLIENT_ID=sandbox_client_id
FLEXTELL_CLIENT_SECRET=sandbox_client_secret

# .env.production
FLEXTELL_BASE_URL=https://app.flextell.ai
FLEXTELL_CLIENT_ID=prod_client_id
FLEXTELL_CLIENT_SECRET=prod_client_secret
```

## Scope'ları düzenleme

Uygulamanızı oluşturduktan sonra talep ettiğiniz scope listesini değiştirmek için yeni bir uygulama oluşturmalısınız. Mevcut bir uygulamanın scope'larının **genişletilmesi** güvenlik nedeniyle engellenmiştir — kullanıcılar yetki verirken sadece o anki listeyi onaylar.

## Sonraki adım

Uygulamanızı oluşturduğunuza göre, [Authorization Code akışı](/authentication/authorization-code) ile ilk token'ınızı alabilirsiniz.
