kagasu / GooglePlayStoreApi

Google Play Store API for .NET(unofficial)
MIT License
20 stars 6 forks source link

GooglePlayStoreApiNuGet

Install

Install as NuGet package

Install-Package GooglePlayStoreApi

.NET CLI

dotnet add package GooglePlayStoreApi

Usage

Get auth_token from this URL

Search

var email = "abc@gmail.com";
var androidId = ""; // use your real GSF ID(Google Service Framework ID)
var token = "oauth2_4/...";

var client = new GooglePlayStoreClient(email, androidId);
token = await client.GetGoogleToken(token);
await client.GetGoogleAuth(token);

var searchResult = await client.Search("gmail");
foreach (var appDetail in searchResult.PreFetch[0].Response.Payload.ListResponse.Item[0].SubItem.Select(x => x.SubItem[0]))
{
  var appId = appDetail.Id;
  var appName = appDetail.Title;

  Console.WriteLine($"{appId},{appName}");
}

AppDetail

var email = "abc@gmail.com";
var androidId = ""; // use your real GSF ID(Google Service Framework ID)
var token = "oauth2_4/...";
var gmailPackageName = "com.google.android.gm";

var client = new GooglePlayStoreClient(email, androidId);
token = await client.GetGoogleToken(token);
await client.GetGoogleAuth(token);

var appDetail = await client.AppDetail(gmailPackageName);
var appName = appDetail.Item.Title;
var descriptionHtml = appDetail.Item.DescriptionHtml;
var versionCode = appDetail.Item.Details.AppDetails.VersionCode;
var versionString = appDetail.Item.Details.AppDetails.VersionString;
var permissions = appDetail.Item.Details.AppDetails.Permission;
var offerType = appDetail.Item.Offer[0].OfferType;

Download APK

var email = "abc@gmail.com";
var androidId = ""; // use your real GSF ID(Google Service Framework ID)
var token = "oauth2_4/...";
var gmailPackageName = "com.google.android.gm";

var client = new GooglePlayStoreClient(email, androidId);
token = await client.GetGoogleToken(token);
await client.GetGoogleAuth(token);

var appDetail = await GetAppDetail(client, gmailPackageName);
var versionCode = appDetail.Item.Details.AppDetails.VersionCode;
var offerType = appDetail.Item.Offer[0].OfferType;

await client.Purchase(gmailPackageName, offerType, versionCode);
var bytes = await client.DownloadApk(gmailPackageName);
File.WriteAllBytes("Gmail.apk", bytes);

First time login

var token = "oauth2_4/...";
token = await client.GetGoogleToken(token);
// save token to "token.txt"
File.WriteAllText("token.txt", token);
await client.GetGoogleAuth(token);

After the second time login

// load token from "token.txt"
var token = File.ReadAllText("token.txt");
await client.GetGoogleAuth(token);

Related projects