1. Giriş
Visual Studio Code (VS Code) ve Huachao Mao'nun Rest Client uzantısı, Google OAuth izin akışını ve Google Health API'yi test etmenize olanak tanır. Bu codelab'de, Rest Client uzantısını nasıl ayarlayacağınız, yetkilendirme akışını nasıl başlatacağınız ve Google Health API uç noktalarından birine ilk çağrınızı nasıl yapacağınız gösterilecektir. Ardından, HTTP projenizdeki diğer uç noktaları oluşturmak için Rest Client ve Fitbit belgelerini okuyabilirsiniz.
VS Code ve Rest Client'ı kullanmak istemiyorsanız API çağrıları curl komutlarıyla yapılabilir.
Neler öğreneceksiniz?
- VS Code'u Rest istemci uzantısıyla ayarlama
- Google Cloud Console'da istemci kimliği oluşturma
- Erişim jetonu ve yenileme jetonu almak için Google OAuth 2.0 yetkilendirme akışını nasıl kullanacağınız.
- Rest istemcisini kullanarak Google Health API uç noktalarına nasıl çağrı yapılacağı.
İhtiyacınız olanlar
- Fitbit mobil uygulaması
- Visual Studio Code
- Huacho Mao tarafından geliştirilen Rest Client uzantısı.
Fitbit mobil uygulamasını kurmak için:
- Apple App Store veya Google Play Store'da Fitbit mobil uygulamasını arayıp indirin.
- Uygulama simgesini seçin.
- Google ile oturum aç'ı tıklayın.
- Google Hesabınızı seçin ve Devam düğmesine basın.
Visual Studio araçlarını yüklemek için:
- VS Code'u indirin. Genellikle indirilen dosya, yürütülebilir dosyayı içerir.
- VS Code'u başlatın.
- Huachao Mao tarafından geliştirilen Rest Client uzantısını yükleyin.
- IDE'nin sol tarafındaki uzantı simgesini
tıklayın. - REST Client by Huachao Mao'yu arayın ve Install'a (Yükle) basın.
- IDE'nin sol tarafındaki uzantı simgesini
2. Google Cloud projesi oluşturma
İstemci kimliği oluşturmak ve Google Health API'nin kullanımını etkinleştirmek için Google Cloud Console'u kullanırsınız.
- Google Cloud Console'da oturum açın.
- Yeni bir proje oluşturmak için:
- Proje seçme aracında Proje seç'i tıklayın.
- Sağ üst köşede Yeni Proje'yi seçin.
- Proje adınızı girin.
- Konumunuzu girin (örneğin, "Kuruluş yok").
- Oluştur düğmesini tıklayın.
- Projenizi seçin.
Google Health API'yi etkinleştirme
- Sol üst köşedeki menü simgesini tıklayın:

- API'ler ve Hizmetler > Kitaplık'ı seçin.
- "Google Health API"yi arayın ve etkinleştirin.
OAuth kimlik bilgilerinizi ayarlama
Google Cloud Console'da değilseniz Google Cloud Console'a gidin.
- Sol üst köşedeki menü simgesini tıklayın:

- API'ler ve Hizmetler > Kimlik bilgileri'ni seçin.
- Üst orta kısımdan + Kimlik bilgileri oluştur > OAuth istemci kimliği'ni seçin.
- Kullanıcı rızası ekranını yapılandır düğmesini tıklayın. "Google Auth Platform henüz yapılandırılmadı" mesajı görünürse Başlayın düğmesini tıklayın.
- 1. bölümde:
- Uygulama adını girin.
- Kullanıcı desteği e-posta adresini girin.
- İleri düğmesini tıklayın.
- 2. bölümde:
- Harici'yi seçin.
- İleri düğmesini tıklayın.
- 3. bölümde:
- İletişim bilgileri alanına e-posta adresinizi girin.
- İleri düğmesini tıklayın.
- 4. bölümde:
- Google'ın API Hizmetleri Kullanıcı Verileri Politikası'nı kabul etmek için onay kutusunu tıklayın.
- Oluştur düğmesini tıklayın.
- Metrikler bölümünde OAuth istemcisi oluştur düğmesine basın.
- Web Uygulaması uygulama türünü seçin.
- İstemci kimliği adını girin.
- Yetkilendirilmiş JavaScript kaynakları'nı boş bırakın.
- Yetkilendirilmiş yönlendirme URI'leri bölümünde + URI ekle düğmesine basın. Yönlendirme URI'niz olarak "https://www.google.com" adresini girin.
- Oluştur düğmesini tıklayın.
- Google Console, istemci kimliğinizin oluşturulduğunu belirten bir mesaj gösterir. İstemci kimliğini ve istemci gizli anahtarını indirmek için JSON'ı indir bağlantısını tıklayın veya değerleri not alın. Müşterinizin gizli anahtarını daha sonra kurtaramazsınız.
- Tamam'ı tıklayın. "OAuth 2.0 İstemci Kimlikleri" sayfasına yönlendirilirsiniz.
- İstemci kimliğiniz projenize eklenir. Ayrıntıları görmek için istemci kimliği URL'sini tıklayın.
Test kullanıcıları ekleme
- Sol bölmede Kitle'yi seçin. "Yayınlama durumu"nun Test, "Kullanıcı türü"nün ise Harici olarak ayarlandığını görmeniz gerekir.
- "Test kullanıcıları" bölümünde + Kullanıcı ekle düğmesini tıklayın. Verilerini almak istediğiniz kullanıcıların e-posta adresini girin.
- Kaydet düğmesini tıklayın.
İstemci kimliğine kapsam ekleme
- Sol bölmede Veri Erişimi'ni seçin.
- Kapsam ekle veya kaldır düğmesini tıklayın.
- API sütununda "Google Health API"yi arayın. Bu codelab'de
.../auth/googlehealth.activity_and_fitness.readonlykapsamını kullanıyoruz. - Kapsamı seçtikten sonra Güncelle düğmesine basarak Veri Erişimi sayfasına geri dönün.
- Kaydet düğmesini tıklayın.
İstemci kimliğinizi ayarlamayı tamamladınız.
3. Yetkilendirme akışını oluşturma
- Makinenizde VS Code uygulamasını açın.
- Karşılama ekranında Aç'ı seçin.
- Bu projeyi oluşturmak için bir klasör seçin ve Aç'ı tıklayın. Ekranınız, Gezgin'de klasör veya proje adınızı gösteren aşağıdaki gibi bir görünüme sahip olmalıdır.

- Ana menüden Dosya -> Yeni Metin dosyası'nı seçin.
- Dosyaya ad vermek için dosyayı kaydedin. Ana menüden Dosya -> Farklı Kaydet -> Codelab.http'yi seçin. Bu işlem, dosyayı projenize yerleştirir. Dosyanın uzantısı .http veya .rest olmalıdır. Bu codelab'de .http uzantısını kullanıyoruz.
Bu proje boyunca çeşitli değerleri birden çok kez kullanacağız. Bu değerler şunlardır:
| Google Console'daki istemci kimliği değeri. |
| Google konsolundaki istemcinin gizli anahtar değeri. |
| Uygulamanızda yetkilendirme kodunu işleyen bir uç nokta. Codelab'de https://www.google.com adresi kullanılmaktadır. |
| İzin akışı tamamlandıktan sonra kullanıcı için oluşturulan erişim jetonu. |
| İzin akışı tamamlandıktan sonra kullanıcı için oluşturulan yenileme jetonu. |
Bu projede kullanılan değişkenleri tanımlayan aşağıdaki kodu ekleyin. Bu kodlar, Codelab.http dosyasının en üst kısmında yer almalıdır. client_id ve secret değerlerini girin.
### File Variables for the Codelab
@client_id =
@secret =
@redirect_uri = https://www.google.com
@accessToken={{user.response.body.access_token}}
@refreshToken={{user.response.body.refresh_token}}
İzin akışını başlatmak için kullanılan yetkilendirme URL'si, verilerine erişmek istediğiniz her kullanıcıya gönderilir. Yetkilendirme URL'sini oluşturmak için Google OAuth uç noktasının ne olduğunu bilmemiz ve istemci kimliğini, erişmek istediğimiz kapsamları ve kullanıcı kapsamları kabul ettiğinde nereye yönlendirileceğini belirtmek için sorgu parametrelerini kullanmamız gerekir. Google yetkilendirme dizesini oluşturmayla ilgili tüm belgeleri belgeler bölümünde bulabilirsiniz.
Google'ın OAuth 2.0 uç noktası https://accounts.google.com/o/oauth2/v2/auth adresindedir. Bu uç nokta yalnızca HTTPS üzerinden erişilebilir. Düz HTTP bağlantıları reddedilir.
Google yetkilendirme sunucusu, web sunucusu uygulamalarının yetkilendirme akışını özelleştirmesi için birçok sorgu dizesi parametresini destekler. Şu zorunlu sorgu parametrelerini kullanacağız: client_id, redirect_uri, response_type ve scope. Belgelerde tüm sorgu parametrelerinin ve açıklamalarının listesi yer alır.
Sorgu parametrelerinin değerleri şunlardır:
| Google Console'daki istemci kimliği değeri |
| Uygulamanızda yetkilendirme kodunu işleyen bir uç nokta. Codelab için https://www.google.com adresini kullanın. |
|
|
| Kapsamlar, Google konsolundan gelir ve söz dizimi https://www.googleapis.com ile başlar, ardından kapsam adı gelir. Örneğin, https://www.googleapis.com/auth/googlehealth.activity_and_fitness. |
Değişkenlerden sonra, yetkilendirme URL'mizi gösterildiği gibi yazın. Projenin en üstünde tanımlanan parametreler, yetkilendirme dizesinde kullanılamaz. Bu nedenle, client_id ve redirect_uri değerlerini eklememiz gerekir. client-id dizesini istemci kimliğinizle değiştirin.
### Google Health API Rest Client Example
### Authorization String
https://accounts.google.com/o/oauth2/v2/auth?client_id=client-id&redirect_uri=https://www.google.com&response_type=code&access_type=offline&scope=https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly
Kullanıcı izin verdiğinde Google, Google'ın jeton uç noktası çağrılarak erişim jetonuyla değiştirilen bir yetkilendirme kodu sağlar. Aşağıdaki tanımı, yetkilendirme dizesinin altına Codelab.http için jeton uç noktasını çağırmak üzere ekleyin. Sonraki adımda authorization-code yerine yetkilendirme kodu gireceksiniz.
### AUTHORIZATION ENDPOINTS
######################################################################
# @name user
POST https://oauth2.googleapis.com/token
Content-Type: application/x-www-form-urlencoded
code=authorization-code&client_id={{clientId}}&client_secret={{secret}}&redirect_uri={{redirect_uri}}&grant_type=authorization_code
@name user, verilerine eriştiğiniz mevcut kullanıcıyı ifade eder.
4. Hesabı yetkilendirme ve jeton alma
Şimdi yetkilendirme jetonlarını almak için yetkilendirme akışını inceleyeceğiz.
Codelab.http içindeki yetkilendirme dizesi, Google'ın tarayıcı tabanlı izin akışını başlatmak için kullanılır. Rest Client uzantısı, bu URL için İstek Gönder bağlantısını gösterebilir. Bu URL için İstek Gönder'i kullanmayın. Bunun yerine, bağlantıyı kopyalayıp tarayıcınıza yapıştırın veya VS Code'da Ctrl+Tıkla (Windows/Linux) ya da Cmd+Tıkla (Mac) seçeneğini kullanarak varsayılan tarayıcınızda açın.
https://accounts.google.com/o/oauth2/v2/auth?client_id=client-id&redirect_uri=https://www.google.com&response_type=code&access_type=offline&scope=https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly
- Google Hesabınızda oturum açmanız istenir. Test kullanıcıları ekle bölümünde yapılandırdığınız test kullanıcı hesaplarından birini kullanarak oturum açmanız gerekir.
- Uygulamanın doğrulanmadığını belirten bir mesaj görebilirsiniz. Bunun nedeni, uygulamanın yayınlanmamış olmasıdır. "Devam"a basın.

- İzin sayfasında, istenen kapsamlar listelenir. Kullanıcı, bu uygulamayla paylaşmak istediği kapsamları seçebilir. "Devam"ı tıklayın.
İstenen kapsamların paylaşılmasına izin verdikten sonra, belirttiğiniz redirect_uri'a (bu codelab'de https://www.google.com) yönlendirilirsiniz. Google, redirect_uri öğesine bir yetkilendirme kodu ve başka parametreler ekler. Bu nedenle, tarayıcınızın adres çubuğundaki URL şu şekilde görünmelidir:
https://www.google.com/?code=4/0Ab32j93oyGWqaXE112sP1IKmh3kV1fE4tcHIMXYJQYWgNEtAa_0-YsfkS9Ekj3Be89u3fw&scope=https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly
Yetkilendirme kodu, "code=" ile "&scope" arasındaki alfanümerik değerdir. Yukarıdaki örnekte değer şudur:
4/0Ab32j93oyGWqaXE112sP1IKmh3kV1fE4tcHIMXYJQYWgNEtAa_0-YsfkS9Ekj3Be89u3fw
Üretim uygulamasında sunucunuz bunu URL parametrelerinden ayrıştırır. Bu codelab için tarayıcınızdaki URL'den yetkilendirme kodunu kopyalayın.
Şimdi bu yetkilendirme kodunu access_token ve refresh_token ile değiştirin. Codelab.http bölümünde, POST /token istek gövdesindeki authorization-code yerine kopyaladığınız yetkilendirme kodunu girin.
POST https://oauth2.googleapis.com/token
Content-Type: application/x-www-form-urlencoded
code=authorization-code&client_id={{client_id}}&client_secret={{secret}}&redirect_uri={{redirect_uri}}&grant_type=authorization_code
POST https://oauth2.googleapis.com/token çizgisinin hemen üstündeki İstek Gönder bağlantısını tıklayın.
Yanıt şu şekilde görünmelidir:
{
"access_token": "ya29.a0ATi6K2uasci7FyyIClNLtQou6z...",
"expires_in": 3599,
"refresh_token": "1//05EuqYpEXjJCHCgYIA...",
"scope": "https://www.googleapis.com/auth/googlehealth.activity_and_fitness",
"token_type": "Bearer",
"refresh_token_expires_in": 604799
}
Bu yanıtı aldığınızda, Rest Client, sonraki isteklerde kullanılmak üzere Codelab.http'nin üst kısmında tanımlanan @accessToken ve @refreshToken değişkenlerini otomatik olarak doldurur.
Yenileme jetonları hakkında
Yetkilendirme kodunu değiştirdiğinizde yanıtta access_token dışında refresh_token de yer alabilir. access_token kısa ömürlüdür (genellikle 1 saat). Bir access_token sona erdiğinde, kullanıcının tekrar oturum açmasını veya izin vermesini gerektirmeden yeni bir access_token almak için refresh_token kullanmanız gerekir. Yetkilendirme isteğimize access_type=offline eklediğimiz için bu işlem yapılabilir.
Yanıtın içinde refresh_token görmüyorsanız bunun nedeni, bu uygulama ve kapsamlar için daha önce izin vermiş olmanız olabilir. Yenileme jetonları genellikle yalnızca bir kullanıcı uygulamanız için ilk kez izin verdiğinde veya yetkilendirme URL'sine prompt=consent eklenerek kullanıcı rızası ekranının sonraki yetkilendirmelerde bile görünmesi zorlandığında verilir.
refresh_token uzun ömürlüdür ancak 6 ay boyunca kullanılmazsa, kullanıcı uygulamanıza erişimi iptal ederse veya başka nedenlerle süresi dolabilir ya da geçersiz hale gelebilir. refresh_token değerini ileride kullanmak üzere güvenli bir şekilde saklamanız gerekir.
Daha fazla bilgi için Erişim jetonunu yenileme (çevrimdışı erişim) başlıklı makaleyi inceleyin.
5. Fitbit mobil uygulamasına veri ekleme
Fitbit'i yeni kullanmaya başlayan kullanıcıların Fitbit hesaplarında sorgulanacak veri olmayabilir. Uç noktalardan biri aracılığıyla sorgulayabileceğimiz bir egzersiz günlüğünü manuel olarak ekleyeceğiz. Bir egzersizi manuel olarak kaydetmek için şu adımları uygulayın:
- Cihazınızda Fitbit mobil uygulamasını açın. Gerekirse Fitbit hesabınızda oturum açın.
- Ekranın sağ alt köşesindeki + düğmesine dokunun.
- "Manuel olarak kaydet" bölümünde Etkinlik'e dokunun.
- Yürüyüş egzersiz türünü arayıp seçin.
- Bugün için bir başlangıç saati girin.
- Süreyi 15 dakika olarak değiştirin.
- Mesafeyi 1,6 km olarak bırakın.
- Ekle'ye dokunun.
- Ekrana uzun basıp aşağı kaydırarak mobil uygulamayı Fitbit sunucularıyla senkronize edin. Parmağınızı bıraktığınızda mobil uygulamanın senkronize edildiğini görürsünüz.
- "Etkinlik" bölümünde, manuel olarak kaydedilen Yürüyüş girişinizi görmeniz gerekir.

6. Liste yöntemini kullanarak verileri alma
list yöntemini çağırmak için Codelab.http dosyasına /token uç noktasının hemen altına aşağıdaki kodu ekleyin.
### users.dataTypes.dataPoints
#####################################################
### LIST exercise
GET https://health.googleapis.com/v4/users/me/dataTypes/exercise/dataPoints
Authorization: Bearer {{accessToken}}
Accept: application/json
Bu kod, kullanıcının Fitbit hesabında kaydettiği adımları göstermek için list uç noktasını çağırır. Her dakikaya ait adım sayısı, Fitbit Web API v1 Activity Intraday uç noktasına benzer şekilde yanıtta döndürülür.
Çağrıyı yürütmek için GET uç noktasıyla ilgili İsteği Gönder bağlantısına basın. Yanıtınız aşağıdaki gibi görünmelidir:
{
"dataPoints": [
{
"name": "users/2515055256096816351/dataTypes/exercise/dataPoints/8896720705097069096",
"dataSource": {
"recordingMethod": "MANUAL",
"platform": "FITBIT"
},
"exercise": {
"interval": {
"startTime": "2026-02-23T13:10:00Z",
"startUtcOffset": "-18000s",
"endTime": "2026-02-23T13:25:00Z",
"endUtcOffset": "-18000s"
},
"exerciseType": "WALKING",
"metricsSummary": {
"caloriesKcal": 16,
"distanceMillimiters": 1609344,
"steps": "2038",
"averagePaceSecondsPerMeter": 0.55923407301360051,
"activeZoneMinutes": "0"
},
"exerciseMetadata": {},
"displayName": "Walk",
"activeDuration": "900s",
"exerciseEvents": [
{
"eventTime": "2026-02-23T13:10:00Z",
"eventUtcOffset": "-18000s",
"exerciseEventType": "START"
},
{
"eventTime": "2026-02-23T13:25:00Z",
"eventUtcOffset": "-18000s",
"exerciseEventType": "STOP"
}
],
"updateTime": "2026-02-24T01:19:22.450466Z"
}
},
{
"name": "users/2515055256096816351/dataTypes/exercise/dataPoints/5870930690409355408",
"dataSource": {
"recordingMethod": "MANUAL",
"platform": "FITBIT"
},
"exercise": {
"interval": {
"startTime": "2026-02-23T06:00:00Z",
"startUtcOffset": "-18000s",
"endTime": "2026-02-23T06:15:00Z",
"endUtcOffset": "-18000s"
},
"exerciseType": "WALKING",
"metricsSummary": {
"caloriesKcal": 17,
"distanceMillimiters": 1609344,
"steps": "2038",
"averagePaceSecondsPerMeter": 0.55923407301360051,
"averageHeartRateBeatsPerMinute": "81",
"activeZoneMinutes": "0",
"heartRateZoneDurations": {
"lightTime": "900s"
}
},
"exerciseMetadata": {},
"displayName": "Walk",
"activeDuration": "900s",
"exerciseEvents": [
{
"eventTime": "2026-02-23T06:00:00Z",
"eventUtcOffset": "-18000s",
"exerciseEventType": "START"
},
{
"eventTime": "2026-02-23T06:15:00Z",
"eventUtcOffset": "-18000s",
"exerciseEventType": "STOP"
}
],
"updateTime": "2026-02-23T08:29:39.480437Z"
}
}
],
"nextPageToken": ""
}
Birçok uç nokta, filtreleme veya sayfalama için sorgu parametrelerini destekler. Örneğin, egzersiz, interval.civil_start_time filtresini destekler. Belirli bir zaman aralığındaki egzersizleri listelemek için Codelab.http'ya aşağıdaki isteği ekleyin:
### LIST exercise >= civil start time
GET https://health.googleapis.com/v4/users/me/dataTypes/exercise/dataPoints?filter=exercise.interval.civil_start_time >= "2026-02-22T00:00:00"
Authorization: Bearer {{accessToken}}
Accept: application/json
7. Tebrikler
Tebrikler!
Temel codelab'i tamamladınız ve OAuth 2.0 yetkilendirmesini test etmek ve Google Health API uç noktalarına çağrı yapmak için Visual Studio Code ve Rest Client uzantısını nasıl kullanacağınızı başarıyla öğrendiniz. Buradan, bölümün başında yaptığınız gibi Liste yöntemini kullanarak verileri alma bölümündeki ek uç noktaları ekleyebilirsiniz.
Google Health API ekosistemiyle entegre olan uygulamalar geliştirmekten keyif alacağınızı umuyoruz. Daha fazla bilgi için referans dokümanlarındaki diğer Google Health API uç noktalarını inceleyin ve Web Sunucusu Uygulamaları için Google OAuth 2.0 hakkında daha fazla bilgi edinin.