Package: joinpython
A python script that allows for pushing to Join by Joaoapps from the
command line.imageRequiresPython3A Join AccountSetupRunpip3 install joinpythonorpip3 installgit+https://github.com/Rayquaza01/JoinPythonRunjoin.py--setupto start the setup (optional)The Config FileIf you run setup, a config file is created at~/JoinPython.jsonwith your device and contact data. This allows you to omit certain
arguments (--apikey,--deviceId, etc.) when running the
program.If you have a file namedJoinPython.jsonin your current
directory, it will be used instead of the one in your home folder.You can choose to use a different config file with the--configoption.Sample config file:{"version":"VERSION","apikey":"YOUR_API_KEY","default_device":"Phone","contacts":{"Name 1":"5555555555"},"devices":{"Phone":"PHONE_DEVICE_ID","Tablet":"TABLET_DEVICE_ID"}}Contacts SetupThe--smsnumberand--callnumberarguments take a phone number
to be used by Join. You can edit the config file
(~/JoinPython.json) with contact names to allow these arguments to
take a name instead.The contacts section should look something like this:{"Name 1":"5555555555","Name 2":"(555) 555-5555","Name 3":"+1 555.555.5555"}The actual formatting of the numbers is unimportant; Join should be
able to handle most formats.You can also usethis Tasker
task(also available
here)
to pull the numbers from your phone’s contacts (Requires Tasker,
AutoTools, and AutoContacts to run)--smscontactnamecan be used instead of contact setup, but contact
setup is still required for--callnumberand--smsnumberUsageRunjoin.pywith arguments corresponding to what you want to do.
Arguments correspond directly tothe Join
API(Ex: The clipboard parameter is--clipboard).join.py--helpgives a list of accepted arguments.IrregularitiesThedeviceNamesparameter is used when--deviceIdis given a
comma separated list of names.deviceIdsis never used.Including a comma anywhere in the--deviceIdparameter will force
it to usedeviceNames, even if you only list one device.join.py-dPhone-ctestwon’t work without a config file, butjoin.py-dPhone,-ctestwill.--deviceIdcan take device names (with a config file or comma),
groups (group.android,group.all, etc.), or use an ID
directly.--deviceIdcan be ommitted if you provide a default device in the
config file.--apikeycan take an API key or be ommitted to use the key in the
config file.--generateURLprints the Join API URL without actually calling
it.--configallows you to choose what config file to useAs a modulejoinpython.listDevices( apikey )Returns a JSON object of devices from the Join API. It directly returns
the response ofhttps://joinjoaomgcd.appspot.com/_ah/api/registration/v1/listDevicesjoinpython.request( args )Takes a dictionary of API parameters and sends them to Join.If your arguments include the keygenerateURL, it will return a
string of the Join URL instead of sending the request to Join.Example:#!/usr/bin/env python3importjoinpythonargs={"deviceId":"DEVICE_ID_HERE","apikey":"API_KEY_HERE","clipboard":"Clipboard Text","find":True}response=joinpython.request(args)Old VersionThe older (pre pip installation support) version is still available athttps://github.com/Rayquaza01/JoinPython/releases/tag/0.0.0The main differences are:The older versions did not have version numbersThe contact and device data was stored in two separate filesThe config file was stored in the installation directory, not the
home folderIt can now be imported as a module without copying the join.py filePip handles adding the script to the path automatically