10- PHP Entegrasyonları

1. Web Servis Entegrasyonları

SOAP ve RESTful Web Servisleri

SOAP Web Servisi Örneği:
<?php
// SOAP Web Servisi ile iletişim kurma
$wsdl = "http://example.com/soap-service?wsdl";
$client = new SoapClient($wsdl);

// SOAP servisi tarafından sunulan bir metodunu çağırma
$response = $client->getUserInfo(['userID' => 123]);

// Yanıtı işleme
echo $response->username;
?>

RESTful Web Servisi Örneği:
<?php
// RESTful Web Servisi ile iletişim kurma
$url = "http://example.com/rest-service/users/123";
$response = file_get_contents($url);

// JSON veriyi işleme
$userData = json_decode($response, true);
echo $userData['username'];
?>

2. Veritabanı Entegrasyonları

MySQL Veritabanı Bağlantısı:

<?php
// MySQL veritabanına bağlanma
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

$conn = new mysqli($servername, $username, $password, $dbname);

// Sorgu yapma
$sql = "SELECT * FROM users";
$result = $conn->query($sql);

// Sonuçları işleme
while($row = $result->fetch_assoc()) {
echo $row['username'] . "<br>";
}

// Bağlantıyı kapatma
$conn->close();
?>

MongoDB NoSQL Veritabanı Entegrasyonu:

<?php
// MongoDB veritabanına bağlanma
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

// Veri ekleme
$bulk = new MongoDB\Driver\BulkWrite;
$document = ['_id' => new MongoDB\BSON\ObjectID, 'username' => 'john_doe'];
$bulk->insert($document);
$manager->executeBulkWrite('test.users', $bulk);

// Veri sorgulama
$filter = ['username' => 'john_doe'];
$options = [];
$query = new MongoDB\Driver\Query($filter, $options);
$cursor = $manager->executeQuery('test.users', $query);

// Sonuçları işleme
foreach ($cursor as $document) {
echo $document->username . "<br>";
}
?>

3. API Entegrasyonları

OAuth ve API Kimlik Doğrulama

OAuth 2.0 ile Kimlik Doğrulama Örneği:
<?php
// Örnek OAuth 2.0 kimlik doğrulama akışı

// OAuth 2.0 istemcisini başlatma
$clientId = "your_client_id";
$clientSecret = "your_client_secret";
$redirectUri = "your_redirect_uri";
$authorizationEndpoint = "https://api.example.com/oauth/authorize";
$tokenEndpoint = "https://api.example.com/oauth/token";

$oauthClient = new OAuth2\Client($clientId, $clientSecret, $authorizationEndpoint, $tokenEndpoint);

// Kullanıcıyı yetkilendirme bağlantısı oluşturma
$authUrl = $oauthClient->getAuthenticationUrl($redirectUri);

// Kullanıcıyı yetkilendirme sayfasına yönlendirme
header('Location: ' . $authUrl);
exit;
?>

Access Token ile API Kullanımı:
<?php
// OAuth 2.0 ile alınan access token kullanarak API'ya erişim

// Access token'ı almak için gerekli bilgiler
$accessToken = "your_access_token";
$apiUrl = "https://api.example.com/data";

// API'ya GET isteği gönderme
$ch = curl_init($apiUrl);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Bearer $accessToken"]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

// API'dan gelen veriyi işleme
$data = json_decode($response, true);
print_r($data);
?>

Dış Servis Entegrasyonları (Örneğin, Twitter API)

Twitter API ile Tweet Gönderme Örneği:
<?php
// Twitter API ile tweet gönderme

// Twitter API anahtarları
$apiKey = "your_api_key";
$apiSecretKey = "your_api_secret_key";
$accessToken = "your_access_token";
$accessTokenSecret = "your_access_token_secret";

// TwitterOAuth kütüphanesini yükleme
require "twitteroauth/autoload.php";
use Abraham\TwitterOAuth\TwitterOAuth;

// TwitterOAuth nesnesini oluşturma
$twitteroauth = new TwitterOAuth($apiKey, $apiSecretKey, $accessToken, $accessTokenSecret);

// Tweet gönderme
$tweet = $twitteroauth->post(
'statuses/update',
['status' => 'Bu bir test tweetidir. #TwitterAPI']
);

// Tweet gönderildi mi kontrol etme
if ($twitteroauth->getLastHttpCode() == 200) {
echo 'Tweet başarıyla gönderildi.';
} else {
echo 'Tweet gönderme hatası: ' . $twitteroauth->getLastHttpCode();
}
?>