Releases: WebexCommunity/WebexPythonSDK
Added support for uploading local files, when posting messages! (Issue #9)
Thank you @brbester for the enhancement request and sharing your code on how you had solved this previously!
When creating a new message, the files argument now accepts either a valid HTTP/HTTPS Internet URL or a path to a local file that should be uploaded when the message is created.
Note that the files argument only accepts a list containing a single item (a string containing either a URL or a local file path). This is a Spark API limitation that may be lifted at a future date. We have implemented method consistent with the Spark API to provide for backwards compatibility if/when this enhancement is made in the future. This way, when Spark opens up support for attaching multiple files on a single message (and we update the package to support that capability), we will not change the method's API and break calls to this method from existing code leveraging the package.
Example of the new functionality:
from ciscosparkapi import CiscoSparkAPI
api = CiscoSparkAPI()
DEMO_ROOM_NAME = "ciscosparkapi Test Room"
DEMO_PEOPLE = ["test01@cmlccie.com", "test02@cmlccie.com"]
DEMO_TEXT = u"Cisco Spark rocks! \ud83d\ude0e"
DEMO_FILE_URL = "https://developer.ciscospark.com/images/logo_spark_lg@256.png"
MARKDOWN_TEXT = "**This was uploaded from a local file!**"
DEMO_LOCAL_FILE = "picture.jpg"
# Create a new test room
demo_room = api.rooms.create(DEMO_ROOM_NAME)
# Add people to the room
for person_email in DEMO_PEOPLE:
api.memberships.create(test_room.id, personEmail=person_email)
# Post a plain-text message to the room, with an attachment from an Internet URL
message1 = api.messages.create(test_room.id, text=DEMO_TEXT, files=[DEMO_FILE_URL])
print(message1)
# Post a markdown-message to the room, with an attachment uploaded from a local file
message2 = api.messages.create(test_room.id, markdown=MARKDOWN_TEXT, files=[DEMO_LOCAL_FILE])
print(message2)Fix for Bugs #11 and #13
- Corrected an issue where a ciscosparkapiException was incorrectly being raised when a search for people (using
CiscoSparkAPI.people.list()) returns an empty list. - Corrected an issue that caused calls to
CiscoSparkAPI.webhooks.update()to fail.
Now Supporting Python v2/v3!
The package now supports Python v2 and v3! Please upgrade to this release to test the package with your v2 or v3 code, and report any issues via the issues page.
Upgrade also includes:
- Example / sample scripts (thank you @brbester !).
- Default / native support for retrieving your Spark access token from the SPARK_ACCESS_TOKEN environment variable (thank you @ObjectIsAdvantag !).
Patch for issue #7 (Cisco Spark bug), Fix package bug #8
Added a patch to workaround issue #7, where the Cisco Spark cloud is returning an errant 'max=null' query parameter in the next URLs when paging requests where a max= parameter was not specified.
Fixed bug #8, where the files=[] parameter of the CiscoSparkAPI.messages.create() method was not correctly being treated as an list.
PyPI Beta Packaging
This package is now available on PyPI!
$ pip install ciscosparkapiv0.1.1 - Fixed an issue where the API sub-package (ciscosparkapi.api) wasn't included in the source distribution package.
Wrappers for all Cisco API endpoints and data objects have now been completed!
Beta release imminent.
We are preparing to release the first beta for this package. Please test out the package for your use cases, and raise issues for any problems you encounter. Also, PLEASE create new issues to provide feedback and foster discussion on the package API structure (names, method calls and etc.). The package APIs are still subject to change, and I would like to get these nailed down before we release v1 for the package.