在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称(OpenSource Name):rbrcsk/pushbullet.py开源软件地址(OpenSource Url):https://github.com/rbrcsk/pushbullet.py开源编程语言(OpenSource Language):Python 100.0%开源软件介绍(OpenSource Introduction):pushbullet.pyThis is a python library for the wonderful Pushbullet service. It allows you to send push notifications to Android devices. In order to use the API you need an API key that can be obtained here. This is user specific and is used instead of passwords. InstallationThe easiest way is to just open your favorite terminal and type
Alternatively you can clone this repo and install it with
Requirements
UsageAuthenticationfrom pushbullet import Pushbullet
pb = Pushbullet(api_key) If your key is invalid (that is, the Pushbullet API returns a Using a proxyWhen specified, all requests to the API will be made through the proxy.
Note that the use of SOCKS proxies requires the from pushbullet import Pushbullet
pb = Pushbullet(api_key, proxy={"https": "https://user:[email protected]:3128/"}) Note that only HTTPS proxies work with Pushbullet. Pushing thingsPushing a text notepush = pb.push_note("This is the title", "This is the body")
Pushing a linkpush = pb.push_link("Cool site", "https://github.com") Pushing a filePushing files is a two part process. First you need to upload the file, and after that you can push it like you would anything else. with open("my_cool_picture.jpg", "rb") as pic:
file_data = pb.upload_file(pic, "picture.jpg")
push = pb.push_file(**file_data)
The advantage of this is that if you already have a file uploaded somewhere, you can use that instead of uploading again. For example: push = pb.push_file(file_url="https://i.imgur.com/IAYZ20i.jpg", file_name="cat.jpg", file_type="image/jpeg") Working with pushesYou can also view all previous pushes: pushes = pb.get_pushes() Pushes is a list containing dictionaries that have push data. You can use this data to dismiss notifications or delete pushes. latest = pushes[0]
# We already read it, so let's dismiss it
pb.dismiss_push(latest.get("iden"))
# Now delete it
pb.delete_push(latest.get("iden")) Both of these raise You can also delete all of your pushes: pushes = pb.delete_pushes() Pushing to specific devicesSo far all our pushes went to all connected devices, but there's a way to limit that. First we need to get hold of some devices. # Get all devices that the current user has access to.
print(pb.devices)
# [Device('Motorola Moto G'), Device('N7'), Device('Chrome')]
# Select a device from the array using indexing
motog = pb.devices[0]
# Or retrieve a device by its name. Note that an InvalidKeyError is raised if the name does not exist
motog = pb.get_device('Motorola Moto G') Now we can use the device objects like we did with `pb`: push = motog.push_note("Hello world!", "We're using the api.") Alternatively we can pass the device to push methods: push = pb.push_note("Hello world!", "We're using the api.", device=motog) Creating new devicesCreating a new device is easy too, you only need to specify a name for it. Though you can also specify manufacturer, model and icon too. listener = pb.new_device("Listener")
motog = pb.new_device("MotoG", manufacturer="Motorola", model="G", icon="android") Now you can use it like any other device. Editing devicesYou can change the nickname, the manufacturer, model and icon of the device: listener = pb.edit_device(listener, manufacturer="Python", model="3.4.1", icon="system")
motog = pb.edit_device(motog, nickname="My MotoG") Deleting devicesOf course, you can also delete devices, even those not added by you. pb.remove_device(listener) A ChannelsYou can also send pushes to channels. First, create a channel on the Pushbullet website (also make sure to subscribe to that channel). All channels which belong to the current user can be retrieved as follows: # Get all channels created by the current user
print(pb.channels)
# [Channel('My Channel' 'channel_identifier')]
my_channel = pb.channels[0]
# Or retrieve a channel by its channel_tag. Note that an InvalidKeyError is raised if the channel_tag does not exist
my_channel = pb.get_channel('My Channel') Then you can send a push to all subscribers of this channel like so: push = my_channel.push_note("Hello Channel!", "Hello My Channel") Alternatively we can pass the channel to push methods: push = pb.push_note("Hello Channel!", "Hello My Channel.", channel=my_channel) Note that you can only push to channels which have been created by the current user. ContactsContacts, which are known as "Chats" in Pushbullet's terminilogy, work just like devices: # Get all contacts the user has
print(pb.chats)
# [Chat('Peter' <[email protected]>), Chat('Sophie' <[email protected]>)]
sophie = pb.chats[1] Now we can use the chat objects like we did with pb or with the devices.: push = sophie.push_note("Hello world!", "We're using the api.")
# Or:
push = pb.push_note("Hello world!", "We're using the api.", chat=sophie) Adding new chatsbob = pb.new_chat("Bob", "[email protected]") Editing chatsYou can change the name of any chat: bob = pb.edit_chat(bob, "bobby") Deleting chatspb.remove_chat(bob) Sending SMS messagesdevice = pb.devices[0]
push = pb.push_sms(device, "+3612345678", "Wowza!") End-To-End encryptionYou activate end-to-end encryption by specifying your encryption key
during the construction of the from pushbullet import Pushbullet
pb = Pushbullet(api_key, "My secret password") When specified, all sent SMS will be encrypted. Note that the use of
end-to-end encryption requires the Note that Pushbullet supportes End-To-End encryption only in SMS, notification mirroring and universal copy & paste. Your pushes will not be end-to-end encrypted. Error checkingIf the Pushbullet api returns an error code a The pushbullet api documetation contains a list of possible status codes. TODO
LicenseMIT license. See LICENSE for full text. |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论