Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Python library to assist in managing a Khoros Communities (formerly Lithium) environment.

License

NotificationsYou must be signed in to change notification settings

jeffshurtliff/khoros

Repository files navigation

Thekhoros library acts as a Python software development kit (SDK) to administer and manageKhoros Communities (formerly Lithium) online community platforms.

Latest Stable ReleasePyPI
Latest Beta/RC ReleasePyPI
Build StatusGitHub Workflow Status
Supported VersionsPyPI - Python Version
Code Coverage
CodeFactor GradeCodeFactor Grade
DocumentationDocumentation Status
Security AuditsBandit
PyCharm Security Scanner
LicenseLicense (GitHub)
IssuesGitHub open issues
GitHub closed issues
Pull RequestsGitHub pull open requests
GitHub closed pull requests

Installation

The package can be installed via pip using the syntax below.

pip install khoros --upgrade

You may also clone the repository and install from source using below.

git clone git://github.com/jeffshurtliff/khoros.gitcd khoros/python setup.py install

Change Log

The change log can be found in thedocumentation.

Usage

This section provides basic usage instructions for the package.

Importing the package

Rather than importing the base package, it is recommended that you import the primaryKhoros class using the syntaxbelow.

fromkhorosimportKhoros

This recommendation is because the best practice is to use the namekhoros when naming your object instance.

Initializing a Khoros object instance

The primaryKhoros object serves many purposes, the most important being to establish a connection to the KhorosCommunity environment with which you intend to interact. As such, when initializing an instance of theKhoros object,you will need to pass it the community URL, the credentials it will use and related information so that the connectioncan be established.

TheKhoros object can be initiated in two different ways:

  • Passing the information directly into the object
  • Leveraging a "helper" configuration file

Passing the information directly into the object

The community and connection information can be passed directly into theKhoros object when initializing it, asdemonstrated in the example below.

# Using Session Key authenticationkhoros=Khoros(community_url='https://community.example.com',session_auth={'username':USERNAME,'password':PASSWD})# Using LithiumSSO Token authenticationkhoros=Khoros(community_url='https://community.example.com',sso={'sso.authentication_token':LITHIUM_SSO_TOKEN})

Alternatively, configuration settings can be passed at once using theoptions argument in theKhoros class, asshown below.

my_settings= {'community_url':'https://community.example.com','community_name':'mycommunity','auth_type':'session_auth','session_auth': {'username':USERNAME,'password':PASSWD    }}

Leveraging a "helper" configuration file

As an alternative to passing the connection information to theKhoros class in the ways demonstrated above, a"helper" configuration file inyaml orjson format can be leveraged instead and passed to theKhoros classwhen initializing the object.

This is an example of how the configuration file would be written:

# Helper configuration file for the khoros package# Define how to obtain the connection informationconnection:community_url:https://community.example.com/tenant_id:example12345# Define the default authentication type to usedefault_auth_type:session_auth# Define the OAuth 2.0 credentialsoauth2:client_id:FLFeNYob7XXXXXXXXXXXXXXXXXXXXZcWQEQHR5T6bo=client_secret:1n0AIXXXXXXXXXXXXXXXXXXXX1udOtNaYnfJCeOszYw=redirect_url:http://redirect.community.example.com/getAccessToken# Define the session key authorization informationsession_auth:username:serviceaccountpassword:Ch@ng3ME!# Bulk Data API connection informationbulk_data:community_id:example.prodclient_id:ay0CXXXXXXXXXX/XXXX+XXXXXXXXXXXXX/XXXXX4KhQ=token:2f25XXXXXXXXXXXXXXXXXXXXXXXXXa10dec04068europe:no# Define the preferred format for API responsesprefer_json:yes

The file can then be referenced using thehelper argument when initializing the object instance, as shown below.

HELPER_FILE="/path/to/helper.yml"khoros=Khoros(helper=HELPER_FILE)

Utilizing environment variables

This third method of initializing a Khoros object instance is definitely the easiest, as it allows you to callupon theKhoros class without passing any arguments, as shown below.

fromkhorosimportKhoroskhoros=Khoros()

This is accomplished by defining environment variables within your Operating System, either through thegraphical UI, the command-line or within the PythonIDE using theos module andadding entries to theos.environ dictionary, as shown below.

importosos.environ['KHOROS_URL']='https://community.example.com'
Environment VariableDescriptionExample
KHOROS_URLThe base URL of the environmenthttps://community.example.com
KHOROS_TENANT_IDTheTenant ID associated with your environmentabcde12345
KHOROS_DEFAULT_AUTHThe default authentication method you wish to usesession_auth
KHOROS_OAUTH_IDThe Client ID utilized by theOAuth 2.0 authorization grant flowFXXXXXXb7owXXXXXXo+jFlPXXXXXXjZcWQXXXXXX6bo=
KHOROS_OAUTH_SECRETThe Client Secret utilized by theOAuth 2.0 authorization grant flow1XXXXXX+/kZXXXXXXZZ9u1B5+1uXXXXXXfJCeOszYw=
KHOROS_OAUTH_REDIRECT_URLThe Redirect URL utilized by theOAuth 2.0 authorization grant flowhttp://redirect.community.example.com/getAccessToken
KHOROS_SESSION_USERThe username to use withSession Key authenticationapiuser
KHOROS_SESSION_PWThe password to use withSession Key authenticationCh@ng3M3!
KHOROS_PREFER_JSONBoolean string indicating if JSON responses are preferredTrue
KHOROS_LIQL_PRETTYBoolean string indicating if reader-friendly formatting should be usedFalse
KHOROS_LIQL_TRACK_LSIBoolean string indicating if queries should be captured in Community Analytics search reportsFalse
KHOROS_LIQL_ALWAYS_OKBoolean string indicating if all responses should return a200 OK status codeFalse
KHOROS_TRANSLATE_ERRORSBoolean string indicating if errors in API responses should be made more relevant where possibleTrue

If you are leveraging this library on a macOS or Linux operating system (e.g. Ubuntu Server) then you can simplyadd the environment variables you wish to define to either the/etc/environment file if you wish to applythem to all users, or to your user's~/.bashrc file for them to only apply to your user.

# Define environment variables for KhorosKHOROS_URL='https://community.example.com'

Note:You will generally need to log out and log back in for the changes to take effect.

If you are leveraging this library on a Windows operating system (e.g. Windows 10) then you can add environmentvariables for your user via the Command Prompt (i.e.cmd.exe) or PowerShell.

Note:Using either of these two methods, you can add the environment variables using an interactive terminalwindow or using a batch/script file. (Files should use the.bat or.cmd extension for theCommand Prompt and.ps1 for PowerShell.)

Command Prompt

@echooffecho Defining the KHOROS_URL environment variable...setx KHOROS_URL https://community.example.comecho.

PowerShell

"Defining the KHOROS_URL environment variable..."[Environment]::SetEnvironmentVariable("KHOROS_URL","https://community.example.com/","User")

Interacting with the Community APIs

Once theKhoros object instance has been initialized, it can be leveraged to interact with a Khoros Communityenvironment in many ways, which is fully documented in the officialdocumentation. The example below demonstrates how a search can beperformed using LiQL to return information from the environment in JSON format.

response_json=khoros.search(select_fields=('id','view_href'),from_source='messages',where_filter=('style','tkb'),order_by='last_post_time',limit=5)

Documentation

The documentation is located here:https://khoros.readthedocs.io/en/latest/

License

MIT License

Reporting Issues

Issues can be reported within theGitHub repository.

Roadmap

Upcoming improvements to the library can be found in the following locations:

Additional Resources

Additional resources for leveraging the Community APIs can be found in the officialKhoros Developer Documentation.

Donations

If you would like to donate to this project then you can do so usingthis PayPal link.

Disclaimer

This package is considered unofficial and is in no way endorsed or supported byKhoros, LLC.

About

Python library to assist in managing a Khoros Communities (formerly Lithium) environment.

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp