Skip to main content

Support for sending/receiving iMessages

Project description

License Downloads

py-imessage is a library to send iMessages from your Mac computer (it does not work on Windows/Linux). It was originally used to build an API for iMessages; however, Apple doesn’t support third-parties using iMessage over a few hundred marketing messages per day.

Installation

Run the following commands on the terminal

pip install py-imessage

# Disable system integrity protection in order to allow access to chat.db
csrutil disable

If running csrutil disable doesn’t work. Try this stackoverflow post

Sample Usage

from py_imessage import imessage
import sleep

phone = "1234567890"

if not imessage.check_compatibility(phone):
    print("Not an iPhone")

guid = imessage.send(phone, "Hello World!")

# Let the recipient read the message
sleep(5)
resp = imessage.status(guid)

print(f'Message was read at {resp.get("date_read")}')

Documentation

Sending a message

Send a message to a new or an existing contact!

.send(phone, message)

Args

Phone | ten-digit phone number of string type format XXXXXXXXXXX i.e. “1234567890”

Response

Message | The message you plan to send. i.e. “Hi!”

Returns a string, the GUID

Type

Description

string

GUID unique to the message (used for checking on status)

Message status

Check whether a message you sent has been delivered and read (if read receipts turned on).

.status(guid)

Args

Guid | guid returned from sending a message

Response

Returns a dict, with following fields

Field

Type

Description

Sample

guid

string

guid that was passed in to the function

“3A146100-D269-4F35-BDB4-EB2FF7DBDF0F”

date_submitted

datetime

date message was submitted

“Sun, 12 Apr 2020 05:46:48 GMT”

date_delivered

datetime

date message was delivered to recipient’s phone

“Sun, 12 Apr 2020 05:46:49 GMT”

date_read

datetime

date message was read on recipient’s phone

“Sun, 12 Apr 2020 05:47:38 GMT”

Checking iMessage compatibility

Check whether a phone number is registered to an iPhone or an Android device. NOTE: This method is exceptionally slow, so you should cache the response.

.check_compatibility(phone)

Args

Phone | ten-digit phone number of string type format XXXXXXXXXXX i.e. “1234567890”

Response

Returns a boolean, compatibility

Type

Description

boolean

Whether number supports receiving iMessages

Contributing

Please create an issue. Or feel free to add a PR!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

py-iMessage-1.7.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

py_iMessage-1.7-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file py-iMessage-1.7.tar.gz.

File metadata

  • Download URL: py-iMessage-1.7.tar.gz
  • Upload date:
  • Size: 6.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.1

File hashes

Hashes for py-iMessage-1.7.tar.gz
Algorithm Hash digest
SHA256 2f11295493be29b9386814f21fab2e80db79cc97551eb56947560c5fb30af48e
MD5 d4563938886b666a2ed29002e3425d98
BLAKE2b-256 c8f68963f8a3b0f9dcb10e27ff4ddd31c0e78cc4cd38825f16d88e1469116be0

See more details on using hashes here.

File details

Details for the file py_iMessage-1.7-py3-none-any.whl.

File metadata

  • Download URL: py_iMessage-1.7-py3-none-any.whl
  • Upload date:
  • Size: 7.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.1

File hashes

Hashes for py_iMessage-1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 aa3e86baa8935cac0dfeeea111a86f9ba0be8d96c19f72eca2e84fbad1dc3a82
MD5 902edb2981820e61b1535f2ab6b02e28
BLAKE2b-256 4719afff32be8d68b9623c8c168d2d1550897ee5ea6366529747b28b7882ce3f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page