PHPackages                             bulutfon/php-sdk - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. bulutfon/php-sdk

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

bulutfon/php-sdk
================

Bulutfon sdk for Bulutfon-Api

1.7.0(9y ago)101.4k5[1 issues](https://github.com/bulutfon/php-sdk/issues)[1 PRs](https://github.com/bulutfon/php-sdk/pulls)MITPHPPHP &gt;=5.4

Since Aug 31Pushed 9y ago5 watchersCompare

[ Source](https://github.com/bulutfon/php-sdk)[ Packagist](https://packagist.org/packages/bulutfon/php-sdk)[ RSS](/packages/bulutfon-php-sdk/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (1)Versions (10)Used By (0)

Bulutfon Php SDK
================

[](#bulutfon-php-sdk)

Bulutfon API'ye erişmek için [Php oauth2-client](https://github.com/thephpleague/oauth2-client) provider'ı.

- [Dokümantasyon](https://github.com/bulutfon/documents/tree/master/API)
- [Örnek Uygulama](https://github.com/bulutfon/php-sdk/tree/master/examples)

Kullanım
--------

[](#kullanım)

### Master Token ile

[](#master-token-ile)

Sdk'yı composer.json dosyanızın içerisine.

```
require: "bulutfon/php-sdk"

```

komutunu ekledikten sonra,

```
composer install

```

komutunu koşarak projenize dahil ettikten sonra kullanmaya başlayabilirsiniz.

```
	$provider = new \Bulutfon\OAuth2\Client\Provider\Bulutfon([
    	'verifySSL'        => false  // (Varsayılan olarak true'dur eğer ssl doğrulaması istenmiyorsa eklenmelidir.
	]);
```

Şeklinde provider'ınızı tanımladıktan sonra, master token ile bir token objesi oluşturmak gerekmektedir. Bunu da

```
    $token = new \League\OAuth2\Client\Token\AccessToken(['access_token' => "xxxxxx"]);
```

şeklinde oluşturabilir, ardından oluşturulan provider ve token nesneleri ile api erişimi sağlayabilirsiniz.

### OAUTH2 ile

[](#oauth2-ile)

Sdk'yı composer.json dosyanızın içerisine.

```
require: "bulutfon/php-sdk"

```

komutunu ekledikten sonra,

```
composer install

```

komutunu koşarak projenize dahil ettikten sonra kullanmaya başlayabilirsiniz.

```
	$provider = new \Bulutfon\OAuth2\Client\Provider\Bulutfon([
    	'clientId'          => '{client-id}',
    	'clientSecret'      => '{client-secret}',
    	'redirectUri'       => 'https://example.com/callback-url',
    	//'verifySSL        => false (Varsayılan olarak true'dur eğer ssl doğrulaması istenmiyorsa eklenmelidir.
	]);
```

Şeklinde provider'ınızı tanımladıktan sonra, kullanıcıdan izin istemek için

```
 $authUrl = $provider->getAuthorizationUrl();
 header('Location: '.$authUrl);
```

ile kullanıcıyı uygulama izin sayfasına yönlendirebilirsiniz. Kullanıcı uygulama izni verdikten sonra, callback olarak tanımladığınız sayfada

```
	$token = $provider->getAccessToken('authorization_code', [
        'code' => $_GET['code']
    ]);
```

şeklinde access\_tokenınızı alabilir veya

```
	$token = $provider->getAccessToken('refresh_token', [
        'refresh_token' => $refreshToken
    ]);
```

şeklinde expire olmuş token'ınızı yenileyebilirsiniz. İstek sırasında token expire olduysa tekrar tanımladığınız callback\_url'e `refresh_token=true` ve `back=istek yapılan url` parametreleri ile yönlenecektir. bu parametreleri yakalayıp tokenınızı yenileyebilirsiniz.

İşlevler
--------

[](#i̇şlevler)

### Kullanıcı bilgilerine erişme

[](#kullanıcı-bilgilerine-erişme)

SDK ile Kullanıcı bilgileriniz, panel bilgileriniz ve kalan kredinize erişebilirsiniz. Bunun için

```
	$provider->getUser($token);
```

methodunu kullanabilirsiniz.

### Telefon numaraları ve telefon numara detaylarına erişme

[](#telefon-numaraları-ve-telefon-numara-detaylarına-erişme)

Bunun için;

```
	$provider->getDids($token); // Santral listesine erişir
	$provider->getDid($token, $id) // Id'si verilen santral detayını döndürür
```

methodlarını kullanabilirsiniz.

### Dahililere ve dahili detaylarına erişme, dahili oluşturma, güncelleme ve silme

[](#dahililere-ve-dahili-detaylarına-erişme-dahili-oluşturma-güncelleme-ve-silme)

Bunun için;

```
	$provider->getExtensions($token); // Dahili listesine erişir
	$provider->getExtension($token, $id) // Id'si verilen dahili detayını döndürür
	$params = array(
        'full_name' => $_POST['full_name'], #required
        'email' => $_POST['email'], #required
        'did' => $_POST['did'], #required
        'number' => $_POST['number'], #required
        'voicemail' => $_POST['voicemail'], #optional
        'acl' => $_POST['acl'], #required
        'redirection_type' => $_POST['redirection_type'], #required
        'destination_type' => $_POST['destination_type'], #required unless redirection_type is not NONE or EXTERNAL
        'destination_number' => $_POST['destination_number'], #required unless redirection_type is not NONE or EXTERNAL
        'external_number' => $_POST['external_number'] #required if redirection_type is EXTERNAL
    );
	$provider->createExtension($token, $params) // Verilen parametrelere göre yeni dahili oluşturur.
	$provider->updateExtension($token, $id, $params) // Verilen parametrelere göre dahiliyi günceller
	$provider->deleteExtension($token, $id) // Dahiliyi siler
```

methodlarını kullanabilirsiniz.

### Gruplara ve grup detaylarına erişme

[](#gruplara-ve-grup-detaylarına-erişme)

Bunun için;

```
	$provider->getGroups($token); // Grup listesine erişir
	$provider->getGroup($token, $id) // Id'si verilen grup detayını döndürür
```

methodlarını kullanabilirsiniz.

### Arama kayıtlarına ve arama detaylarına erişme ve ses kayıtlarını indirme

[](#arama-kayıtlarına-ve-arama-detaylarına-erişme-ve-ses-kayıtlarını-indirme)

Bunun için;

```
	$provider->getCdrs($token, $params, $page); // Cdr listesine erişir
	$provider->getCdr($token, $uid) // Uid'si verilen cdr detayını döndürür
	# Arama kaydını indirmek için
	$filename = $id.'.wav';
    $save_path = getcwd().'/'.$filename;
    $call_record = $provider->getCallRecord($token, $id, $save_path); # $save_path değişkeni ile verilen pathe ses kaydını kaydeder. (Dosya yazma izinlerinin doğru ayarlandığına emin olunuz.)
    $provider->getCallRecordStreamUrl($token, $id); // Ses Kaydını stream etmek için gerekli url i döndürür
```

methodlarını kullanabilirsiniz.

burada `$params` değişkeni array olup, filtreleme yapmak isterseniz kullanacağınız filtreleri buraya ekleyebilirsiniz. Filtrelerin detayını [dokümantasyondan](https://github.com/bulutfon/documents/blob/master/API/endpoints/cdr.md#filtreler) öğrenebilirsiniz.

`$page` değişkeni ise erişmek istediğiniz sayfayı belirtir.

### Gelen fakslara erişme ve faks dosyasını indirme

[](#gelen-fakslara-erişme-ve-faks-dosyasını-indirme)

Bunun için;

```
	$provider->getIncomingFaxes($token); // Gelen faksları listeler
	# Faks dökümanını indirmek için
    $filename = $id.'.tiff';
    $save_path = getcwd().'/'.$filename;
    $incomingFax = $provider->getIncomingFax($token, $id, $save_path); # $save_path değişkeni ile verilen pathe faks dökğmanını tiff dosyası olarak. (Dosya yazma izinlerinin doğru ayarlandığına emin olunuz.)
```

methodlarını kullanabilirsiniz.

### Giden fakslara erişme ve faks gönderme

[](#giden-fakslara-erişme-ve-faks-gönderme)

Bunun için;

```
	$provider->getOutgoingFaxes($token); // Giden faksları listeler
	$provider->getOutgoingFax($token, $id); // Giden faks detayını gösterir
	# Faks Göndermek için
    $file_path = getcwd().'/../incoming_faxes/abc.pdf';
    $arr = array('title' => 'API TEST', 'receivers' => '90850885xxxx,90850885yyyy', 'did' => "90850885xxxx", 'attachment' => $file_path);
    $resp = $provider->sendFax($token, $arr); # $file_path değişkeni ile dosya yolu verilen belgeyi, receivers parametresindeki alıcılara faks olarak gönderir. (Dosya okuma izinlerinin doğru ayarlandığına emin olunuz.)
```

methodlarını kullanabilirsiniz.

### Ses Dosyalarını listeleme ve indirme, oluşturma ve silme

[](#ses-dosyalarını-listeleme-ve-indirme-oluşturma-ve-silme)

Bunun için;

```
	$provider->getAnnouncements($token); // Ses Dosyalarını listeler
	$provider->getAnnouncement($token, $id, $path); // Ses Dosyasını verilen pathe kaydeder
	$provider->getAnnouncementStreamUrl($token, $id); // Ses Dosyasını stream etmek için gerekli url i döndürür
	/* Ses Dosyası oluşturma */
	$file_path = getcwd().'/test.wav';
    $arr = array('name' => 'API TEST', 'announcement' => $file_path);
    $provider->createAnnouncement($token, $arr);
	/* Ses Dosyası silme */
	$provider->deleteAnnouncement($token, $id);
```

methodlarını kullanabilirsiniz.

### Otomatik Aramaları listeleme ve oluşturma

[](#otomatik-aramaları-listeleme-ve-oluşturma)

Bunun için;

```
	$provider->getAutomaticCalls($token); // Daha önce yapılmış otomatik aramaları listeler
	$provider->getAutomaticCall($token, $id); // Otomatik arama detaylarını görüntüler
	# Yeni otomatik arama oluşturmak için
    $arr = array('title' => 'API ARAMA TEST', 'receivers' => '90850885xxxx,90850885yyyy',
        'did' => "90850885xxxx", 'gather' => true, 'announcement_id' => 'yyy',

        // Tarih ve saatler opsiyonel varsayılan olarak aktif => true start => 09:00 finish => 18:00 olacaktır
        'mon_active' => true, 'mon_start' => '12:15', 'mon_finish' => '12:15',
        'tue_active' => true, 'tue_start' => '12:15', 'tue_finish' => '12:15',
        'wed_active' => true, 'wed_start' => '12:15', 'wed_finish' => '12:15',
        'fri_active' => true, 'fri_start' => '12:15', 'fri_finish' => '12:15',
        'thu_active' => true, 'thu_start' => '12:15', 'thu_finish' => '12:15',
        'sat_active' => true, 'sat_start' => '12:15', 'sat_finish' => '12:15',
        'sun_active' => true, 'sun_start' => '12:15', 'sun_finish' => '12:15'
    );

    # Çalınacak ses dosyasını dışarıdan tanımlamak için
    $arr = array('title' => 'API ARAMA TEST', 'receivers' => '90850885xxxx,90850885yyyy',
        'did' => "90850885xxxx", 'gather' => true, 'sound_url' => 'yyy',

        // Tarih ve saatler opsiyonel varsayılan olarak aktif => true start => 09:00 finish => 18:00 olacaktır
        'mon_active' => true, 'mon_start' => '12:15', 'mon_finish' => '12:15',
        'tue_active' => true, 'tue_start' => '12:15', 'tue_finish' => '12:15',
        'wed_active' => true, 'wed_start' => '12:15', 'wed_finish' => '12:15',
        'fri_active' => true, 'fri_start' => '12:15', 'fri_finish' => '12:15',
        'thu_active' => true, 'thu_start' => '12:15', 'thu_finish' => '12:15',
        'sat_active' => true, 'sat_start' => '12:15', 'sat_finish' => '12:15',
        'sun_active' => true, 'sun_start' => '12:15', 'sun_finish' => '12:15'
    );
    $provider->createAutomaticCall($token, $arr);
```

methodlarını kullanabilirsiniz.

### Sms Başlıklarını Listeleme

[](#sms-başlıklarını-listeleme)

Bunun için;

```
	$provider->getMessageTitles($token); // Panelden oluşturduğunuz sms başlıklarını listeler
```

methodlarını kullanabilirsiniz.

### Mesajları Listeleme ve Mesaj Gönderme

[](#mesajları-listeleme-ve-mesaj-gönderme)

Bunun için;

```
	$provider->getMessages($token); // Gönderilen mesajları listeler
	$parameters = array("limit" => n, "page" => m); // m. sayfadaki n mesajı görüntüler.
	$provider->getMessages($token, $parameters); // Verilen parametrelere göre Gönderilen mesajları listeler
	$provider->getMessage($token, $id); // Gönderilen mesaj detaylarını görüntüler
	# Yeni mesaj göndermek için
    $arr = array(
        'title' => 'TEST',
        'content' => 'Test Message',
        'receivers' => "905xxxxxxxxx,905xxxxxxxxx",
        'is_single_sms' => true, # OPSIYONEL, VARSAYILAN false
        'is_future_sms' => true, # OPSIYONEL, VARSAYILAN false
        'send_date' => '21/06/2015 20:22' # OPTIONAL (Eğer is_future_sms true olarak setlendiyse zorunlu)
    );
    $resp = $provider->sendMessage($token, $arr);
```

methodlarını kullanabilirsiniz.

### Token Bilgisi Alma

[](#token-bilgisi-alma)

Bunun için;

```
	$provider->getTokenInfo($token);
```

methodunu kullanabilirsiniz

Örnek kullanımları görmek için ve erişebileceğiniz değişkenler için [örnek uygulamamızı](https://github.com/bulutfon/php-sdk/tree/master/examples) inceleyebilirsiniz.

Blog Yazıları &amp; Videolu Anlatımlar
--------------------------------------

[](#blog-yazıları--videolu-anlatımlar)

### Videolar

[](#videolar)

- [Ngrok nedir? Nasıl kullanılır?](https://www.youtube.com/watch?v=bnIs7q_-Olc)
- [Composer Paket Yöneticisi](https://www.youtube.com/watch?v=Qqg6DS1x4Js)
- [Bulutfon PHP-SDK ile SMS nasıl gönderilir?](https://www.youtube.com/watch?v=5svLpM-fY18)
- [Bulutfon PHP-SDK ile Dahililerin Listelenmesi](https://www.youtube.com/watch?v=khuqfHynEH0)

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance18

Infrequent updates — may be unmaintained

Popularity23

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 94.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~63 days

Recently: every ~105 days

Total

9

Last Release

3408d ago

PHP version history (2 changes)1.0.0PHP ~5.4

1.7.0PHP &gt;=5.4

### Community

Maintainers

![](https://www.gravatar.com/avatar/48b9c8be22e83af68254585857eec917a619fde2e06bc3efc33261b4ddd597ae?d=identicon)[bulutfon](/maintainers/bulutfon)

---

Top Contributors

[![hamitturkukaya](https://avatars.githubusercontent.com/u/1709737?v=4)](https://github.com/hamitturkukaya "hamitturkukaya (32 commits)")[![aligundogdu](https://avatars.githubusercontent.com/u/683384?v=4)](https://github.com/aligundogdu "aligundogdu (1 commits)")[![ismailakbudak](https://avatars.githubusercontent.com/u/4919272?v=4)](https://github.com/ismailakbudak "ismailakbudak (1 commits)")

---

Tags

packageoauthbulutfon

### Embed Badge

![Health badge](/badges/bulutfon-php-sdk/health.svg)

```
[![Health](https://phpackages.com/badges/bulutfon-php-sdk/health.svg)](https://phpackages.com/packages/bulutfon-php-sdk)
```

###  Alternatives

[league/oauth2-google

Google OAuth 2.0 Client Provider for The PHP League OAuth2-Client

42121.2M118](/packages/league-oauth2-google)[knpuniversity/oauth2-client-bundle

Integration with league/oauth2-client to provide services

84016.7M61](/packages/knpuniversity-oauth2-client-bundle)[thenetworg/oauth2-azure

Azure Active Directory OAuth 2.0 Client Provider for The PHP League OAuth2-Client

2509.6M48](/packages/thenetworg-oauth2-azure)[stevenmaguire/oauth2-keycloak

Keycloak OAuth 2.0 Client Provider for The PHP League OAuth2-Client

2275.9M27](/packages/stevenmaguire-oauth2-keycloak)[league/oauth2-facebook

Facebook OAuth 2.0 Client Provider for The PHP League OAuth2-Client

32013.0M66](/packages/league-oauth2-facebook)[patrickbussmann/oauth2-apple

Sign in with Apple OAuth 2.0 Client Provider for The PHP League OAuth2-Client

1132.5M6](/packages/patrickbussmann-oauth2-apple)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
