{"id":24171261,"url":"https://github.com/loudkode/pushbulletsdk","last_synced_at":"2026-06-08T08:06:35.942Z","repository":{"id":52663631,"uuid":"206702271","full_name":"loudKode/PushbulletSDK","owner":"loudKode","description":"a .Net wrapper library for pushbullet.com API","archived":false,"fork":false,"pushed_at":"2022-12-08T02:16:18.000Z","size":26,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-12T12:49:46.595Z","etag":null,"topics":["api","csharp","dotnet","dotnet-core","dotnet-framework","dotnet-library","dotnet-standard","pushpullet","sdk","wrapper-api"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/loudKode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-09-06T03:07:43.000Z","updated_at":"2020-03-27T07:51:22.000Z","dependencies_parsed_at":"2023-01-24T05:15:14.752Z","dependency_job_id":null,"html_url":"https://github.com/loudKode/PushbulletSDK","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loudKode%2FPushbulletSDK","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loudKode%2FPushbulletSDK/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loudKode%2FPushbulletSDK/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loudKode%2FPushbulletSDK/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/loudKode","download_url":"https://codeload.github.com/loudKode/PushbulletSDK/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241503149,"owners_count":19972988,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","csharp","dotnet","dotnet-core","dotnet-framework","dotnet-library","dotnet-standard","pushpullet","sdk","wrapper-api"],"created_at":"2025-01-13T00:27:56.391Z","updated_at":"2026-06-08T08:06:35.935Z","avatar_url":"https://github.com/loudKode.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"## PushbulletSDK\n\n`Download:`[https://github.com/loudKode/PushbulletSDK/releases](https://github.com/loudKode/PushbulletSDK/releases)\u003cbr\u003e\n`Help:`[https://github.com/loudKode/PushbulletSDK/wiki](https://github.com/loudKode/PushbulletSDK/wiki)\u003cbr\u003e\n`NuGet:`\n[![NuGet](https://img.shields.io/nuget/v/DeQmaTech.PushbulletSDK.svg?style=flat-square\u0026logo=nuget)](https://www.nuget.org/packages/DeQmaTech.PushbulletSDK)\u003cbr\u003e\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\u003ca href=\"https://visualstudio.microsoft.com/vs/older-downloads/\"\u003e\u003cimg src=\"https://i.postimg.cc/3wXQcjjG/VS2017-Banner.png\"\u003e\u003c/a\u003e\n\u003cbr /\u003e\n\u003ca href=\"https://visualstudio.microsoft.com/vs/older-downloads/\"\u003eVisual Studio 2017\u003c/a\u003e\n\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://www.nuget.org/packages/DeQmaTech.PushbulletSDK\"\u003e\u003cimg src=\"https://i.postimg.cc/gjYM286f/Nuget-logo1.png\"\u003e\u003c/a\u003e\n\u003cbr /\u003e\n\u003ca href=\"https://www.nuget.org/packages/DeQmaTech.PushbulletSDK\"\u003enuget\u003c/a\u003e\n\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/loudKode/PushbulletSDK/releases\"\u003e\u003cimg src=\"https://i.postimg.cc/TPXsYk57/dot-net-png-7.png\"\u003e\u003c/a\u003e\n\u003cbr /\u003e\n\u003ca href=\"https://github.com/loudKode/PushbulletSDK/releases\"\u003e4.5.2 / 2.0 / 2.1\u003c/a\u003e\n\u003c/td\u003e\n\u003c/table\u003e\n\n\n# Features\n* Assemblies for .NET 4.5.2 and .NET Standard 2.0 and .NET Core 2.1\n* Just one external reference (Newtonsoft.Json)\n* Easy installation using NuGet\n* Upload/Download tracking support\n* Proxy Support\n* Upload/Download cancellation support\n\n# List of functions:\n\u003e **Token**\n\u003e * GetToken\n\n\u003e **Device**\t\n\u003e * Delete\n\u003e * Create\n\u003e * Update\n\u003e * List\n\n\u003e **Channel**\n\u003e * Mute\n\u003e * Leave\n\u003e * Join\n\u003e * List\n\n\u003e **Push**\n\u003e * Upload\n\u003e * List\n\u003e * SendToDevice\n\u003e * SendToEmail\n\u003e * SendToChannel\n\u003e * SendToAllAppUsers\n\u003e * MarkedAsSeen\n\u003e * Delete\n\u003e * Clear\n\n\n# Code simple:\n**get access token**\n```vb.net\nDim rslt = PushbulletSDK.Authentication.GetToken(\"ClientID\", \"RedirectUrl\")\n```\n\n**set client**\n```vb.net\nDim cLENT As PushbulletSDK.IClient = New PushbulletSDK.PClient(\"token\")\n```\n\n**set client with proxy**\n```vb.net\nDim roxy = New BackBlazeSDK.ProxyConfig With {.ProxyIP = \"172.0.0.0\", .ProxyPort = 80, .ProxyUsername = \"myname\", .ProxyPassword = \"myPass\", .SetProxy = true}\nDim cLENT As PushbulletSDK.IClient = New PushbulletSDK.PClient(\"token\",roxy)\n```\n# Device #\n\n----------\n\n**List Devices**\n```vb.net\nDim RSLT = Await cLENT.Device.List()\nFor Each dev In RSLT.devices\n    DataGridView1.Rows.Add(dev.isExists, dev.iden, dev.manufacturer, dev.model)\nNext\n```\n\n**create new Device**\n```vb.net\nDim RSLT = Await cLENT.Device.Create(\"name\", \"win10\", \"micro\", \"1.0.0\", iconEnum.desktop, Nothing)\n```\n\n**update Device**\n```vb.net\nDim RSLT = Await cLENT.Device.Update(\"device ID\", \"name\", \"win10\", \"micro\", \"1.0.0\", iconEnum.desktop, Nothing)\n```\n\n**delete Device**\n```vb.net\nDim RSLT = Await cLENT.Device.Delete(\"device ID\")\n```\n# Channel #\n\n----------\n\n**List Channels**\n```vb.net\nDim RSLT = Await cLENT.Channel.List\nFor Each chnl In RSLT.subscriptions\n    DataGridView1.Rows.Add(chnl.isExists, chnl.iden, chnl.channel.name, chnl.channel.description, chnl.channel.tag, chnl.channel.iden)\nNext\n```\n\n**Join/UnJoin/Mute/UnMute Channel**\n```vb.net\nDim join_A_channel = Await cLENT.Channel.Join(\"channel tag\")\nDim unjoin_A_channel = Await cLENT.Channel.Leave(\"channel ID\")\nDim mute_unmute_channel = Await cLENT.Channel.Mute(\"channel ID\", True)\n```\n# Push #\n\n----------\n\n**Send Push To Device**\n```vb.net\nDim psend = New PushbulletSDK.Pushes With {.note_push = New PushbulletSDK.Pushes._Note With {.title = \"test titel\", .body = \"this is test body first time.\"}}\nDim RSLT = Await cLENT.Push.SendToDevice(\"device ID\", PushTypesEnum.note, psend)\nDataGridView1.Rows.Add(RSLT.isExists)\n```\n\n**Send Push To All App Users**\n```vb.net\nDim psend = New PushbulletSDK.Pushes With {.note_push = New PushbulletSDK.Pushes._Note With {.title = \"test titel\", .body = \"this is test body first time.\"}}\nDim RSLT = Await cLENT.SendToAllAppUsers(\"APP CLIENT ID\", PushTypesEnum.note, psend)\nDataGridView1.Rows.Add(RSLT.title)\n```\n\n**Send Push To Mail**\n```vb.net\nDim psend = New PushbulletSDK.Pushes With {.note_push = New PushbulletSDK.Pushes._Note With {.title = \"test titel\", .body = \"this is test body first time.\"}}\nDim RSLT = Await cLENT.Push.SendToDevice(\"xxxx@gmail.com\", PushTypesEnum.note, psend)\nDataGridView1.Rows.Add(RSLT.isExists)\n\nDim psend = New PushbulletSDK.Pushes With {.link_push = New PushbulletSDK.Pushes._Link With {.title = \"test titel\", .type = PushTypesEnum.link, .body = \"look at this\", .url = \"https://www.youtube.com/watch?v=7b_EgKWYn5c\"}}\nDim RSLT = Await cLENT.Push.SendToEmail(\"unlimitedillegal.tk@gmail.com\", PushTypesEnum.link, psend)\nDataGridView1.Rows.Add(RSLT.title, RSLT.CreatedDate)\n```\n\n**Send Push To channel**\n```vb.net\nDim RSLT = Await cLENT.Push.SendToChannel(\"channel tag\", PushTypesEnum.link, psend)\n```\n\n**List Pushs**\n```vb.net\nDim RSLT = Await cLENT.Push.List(20)\nFor Each fold In RSLT.pushes\n    DataGridView1.Rows.Add(fold.isExists, fold.iden, fold.body, fold.sender_name, fold.title, fold.type.ToString)\nNext\n\nIf RSLT.HasMore Then\n    Dim RSLT2 = Await cLENT.Push.ListContinue(RSLT.cursor, 20)\n    For Each fold In RSLT2.pushes\n        DataGridView1.Rows.Add(fold.isExists, fold.iden, fold.body, fold.sender_name, fold.title, fold.type.ToString)\n    Next\nEnd If\n```\n\n**delete/clear/markedSeen Push**\n```vb.net\nDim RSLT = Await cLENT.Push.Delete(\"push id\")\nDim RSLT = Await cLENT.Push.Clear()\nDim RSLT = Await cLENT.Push.Marked(\"push id\", True)\n```\n\n**Upload a file and get the link**\n```vb.net\nTry\nDim UploadCancellationToken As New Threading.CancellationTokenSource()\nDim prog_Report As New Progress(Of PushbulletSDK.ReportStatus)(Sub(ReportClass As PushbulletSDK.ReportStatus)\n         Label1.Text = String.Format(\"{0}/{1}\", (ReportClass.BytesTransferred), (ReportClass.TotalBytes))\n         ProgressBar1.Value = CInt(ReportClass.ProgressPercentage)\n         Label2.Text = If(CStr(ReportClass.TextStatus) Is Nothing, \"Uploading...\", CStr(ReportClass.TextStatus))\n         End Sub)\nDim RSLT = Await cLENT.Push.Upload(\"J:\\New.jpg\", UploadTypes.FilePath, \"New.jpg\", prog_Report, Nothing, UploadCancellationToken.Token)\nDataGridView1.Rows.Add(RSLT)\nEnd If\nCatch ex As PushbulletSDK.PushbulletException\n  MsgBox(ex.Message)\nEnd Try\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Floudkode%2Fpushbulletsdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Floudkode%2Fpushbulletsdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Floudkode%2Fpushbulletsdk/lists"}