swydo python开发包(swydo)

swydo的Python项目详细描述


斯维多

PyPI versionPyPI pyversionsBuild Status

A Python 3 module to interact with the Swydo API.

Mayple中开发。

安装

pip install swydo

示例

importloggingimportswydoimportitertoolsfrombravado.exceptionimportHTTPErrorlogging.basicConfig()YOUR_API_KEY="..."# Manually injected, as Swydo sometimes doesn't return teamsyourTeamId="..."print("Starting...")swydoClient=swydo.SwydoClient(apiKey=YOUR_API_KEY,autoRetry=True)yourBrandTemplateId="..."yourReportTemplateId="..."yourFacebookAdsConnectionId="..."yourFacebookGraphConnectionId="..."yourGoogleAdWordsConnectionId="..."yourGoogleAnalyticsConnectionId="..."# If you have onetestClientId=""skipInitialEnumeration=FalseifnotskipInitialEnumeration:teams=list(swydoClient.getTeams())forteamIdinitertools.chain((team['id']forteaminteams),[yourTeamId]):team=swydoClient.getTeam(teamId)assertteam['id']==teamIdprint("Team: %s"%team)teamUsers=swydoClient.getTeamUsers(teamId=teamId)foruserIdin(user['id']foruserinteamUsers):user=swydoClient.getTeamUser(teamId=teamId,userId=userId)assertuserId==user['id']print("User: %s"%user)teamConnections=swydoClient.getTeamConnections(teamId=teamId)forconnectionIdin(connection['id']forconnectioninteamConnections):connection=swydoClient.getTeamConnection(teamId=teamId,connectionId=connectionId)assertconnectionId==connection['id']print("Connection: %s"%connection)teamBrandTemplates=swydoClient.getTeamBrandTemplates(teamId=teamId)forbrandTemplateIdin(brandTemplate['id']forbrandTemplateinteamBrandTemplates):brandTemplate=swydoClient.getTeamBrandTemplate(teamId=teamId,brandTemplateId=brandTemplateId)assertbrandTemplateId==brandTemplate['id']print("BrandTemplate: %s"%brandTemplate)teamReportTemplates=swydoClient.getTeamReportTemplates(teamId=teamId)forreportTemplateIdin(reportTemplate['id']forreportTemplateinteamReportTemplates):reportTemplate=swydoClient.getTeamReportTemplate(teamId=teamId,reportTemplateId=reportTemplateId)assertreportTemplateId==reportTemplate['id']print("ReportTemplate: %s"%reportTemplate)teamClients=swydoClient.getTeamClients(teamId=teamId)forclientIdin(client['id']forclientinteamClients):client=swydoClient.getTeamClient(teamId=teamId,clientId=clientId)assertclientId==client['id']print("Client: %s"%client)clientDataSources=swydoClient.getClientDataSources(teamId=teamId,clientId=clientId)assertclientId==clientDataSources['id']print("ClientDataSources: %s"%clientDataSources)teamReports=swydoClient.getTeamReports(teamId=teamId)forreportIdin(report['id']forreportinteamReports):report=swydoClient.getTeamReport(teamId=teamId,reportId=reportId)assertreportId==report['id']print("Report: %s"%report)# Find a specific clienttry:testClient=swydoClient.getTeamClient(teamId=yourTeamId,clientId=testClientId)exceptHTTPErrorashe:ifhe.status_code==404:testClient=Noneelse:raiseifnottestClient:testClient=swydoClient.createTeamClient(teamId=yourTeamId,name="Test Client via API",description="Test Client's Description",email="test@email.com")print("Test Client: %s"%testClient)testClient=swydoClient.updateTeamClient(teamId=yourTeamId,clientId=testClient['id'],name="Updated Test Client via API",description="Updated Test Client's Description",)print("Test Client: %s"%testClient)swydoClient.archiveTeamClient(teamId=yourTeamId,clientId=testClient['id'],)print("Test Client archived.")swydoClient.unarchiveTeamClient(teamId=yourTeamId,clientId=testClient['id'],)print("Test Client unarchived.")swydoClient.removeClientDataSourceFacebookAds(teamId=yourTeamId,clientId=testClientId,)print("facebookAdsDataSource removed")swydoClient.removeClientDataSourceFacebookGraph(teamId=yourTeamId,clientId=testClientId,)print("FacebookGraph DataSource removed")swydoClient.removeClientDataSourceGoogleAdWords(teamId=yourTeamId,clientId=testClientId,)print("GoogleAdWords DataSource removed")swydoClient.removeClientDataSourceGoogleAnalytics(teamId=yourTeamId,clientId=testClientId,)print("GoogleAnalytics DataSource removed")# FacebookAdsfacebookAdsDataSource=swydoClient.setClientDataSourceFacebookAds(teamId=yourTeamId,clientId=testClientId,connectionId=yourFacebookAdsConnectionId,dataSourceId='adAccountId',dataSourceName='Added Facebook Ad Account',dataSourceCurrencyCode='USD',)print("FacebookAds DataSource: %s"%facebookAdsDataSource)# FacebookGraphfacebookGraphDataSource=swydoClient.setClientDataSourceFacebookGraph(teamId=yourTeamId,clientId=testClientId,connectionId=yourFacebookGraphConnectionId,dataSourceId='dataSourceId',dataSourceName='Added Facebook Graph Account',dataSourcePageId='dataSourcePageId',)print("FacebookGraph DataSource: %s"%facebookGraphDataSource)# GoogleAdWordsgoogleAdWordsDataSource=swydoClient.setClientDataSourceGoogleAdWords(teamId=yourTeamId,clientId=testClientId,connectionId=yourGoogleAdWordsConnectionId,dataSourceClientId='dataSourceClientId',dataSourceName='Added Google Ads Account',dataSourceCurrencyCode='USD',)print("GoogleAdWords DataSource: %s"%googleAdWordsDataSource)# GoogleAnalyticsgoogleAnalyticsDataSource=swydoClient.setClientDataSourceGoogleAnalytics(teamId=yourTeamId,clientId=testClientId,connectionId=yourGoogleAnalyticsConnectionId,dataSourceAccountId='dataSourceAccountId',dataSourceName='Added Google Analytics Account',dataSourceAccountName='dataSourceAccountName',dataSourceWebPropertyId='dataSourceWebPropertyId',dataSourceProfileId='dataSourceProfileId',dataSourceCurrencyCode='USD',)print("GoogleAnalytics DataSource: %s"%googleAnalyticsDataSource)# Create a reporttestReport=swydoClient.createTeamReport(teamId=yourTeamId,name="Temporary Report",clientId=testClientId,brandTemplateId=yourBrandTemplateId,reportTemplateId=yourReportTemplateId,comparePeriod=swydo.Enumerations.ComparePeriod.previous,)print("TestReport: %s"%testReport)testReportId=testReport['id']# Share the reportswydoClient.shareTeamReport(teamId=yourTeamId,reportId=testReportId,)# Update the reporttestReport=swydoClient.updateTeamReport(teamId=yourTeamId,reportId=testReportId,name="Temporary Report Updated",)print("TestReport: %s"%testReport)testReportId=testReport['id']# Unshare the reportswydoClient.unshareTeamReport(teamId=yourTeamId,reportId=testReportId,)# Delete the reportswydoClient.deleteTeamReport(teamId=yourTeamId,reportId=testReportId,)swydoClient.removeClientDataSourceFacebookAds(teamId=yourTeamId,clientId=testClientId,)print("facebookAdsDataSource removed")swydoClient.removeClientDataSourceFacebookGraph(teamId=yourTeamId,clientId=testClientId,)print("FacebookGraph DataSource removed")swydoClient.removeClientDataSourceGoogleAdWords(teamId=yourTeamId,clientId=testClientId,)print("GoogleAdWords DataSource removed")swydoClient.removeClientDataSourceGoogleAnalytics(teamId=yourTeamId,clientId=testClientId,)print("GoogleAnalytics DataSource removed")print("Success!...")

贡献

拉请求和星星总是受欢迎的。对于错误和功能请求,please create an issue

安装时使用:

$ virtualenv .venv -p python3
$ . .venv/bin/activate
(.venv) $ pip install -r requirements.txt

并使用以下命令运行测试:

(.venv) $ pip install -r tests/requirements.txt
(.venv) $ pytest tests/

文档可以这样生成:

(.venv) $ pip install -r doc/requirements.txt
(.venv) $ sphinx-build -b html doc doc/_build/html

相关项目

mdklatt使用cookiecutter Python library template

作者

alon diamant(高级512)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java刷新系统。用自己的记录器输出   使用Jython将参数从Java传递到Python   JavaSocksV4代理   java如何使用通知?   java@DirtiesConext不工作   java将多个jar组合成一个(使用maven)   java使用相等运算符比较两个类   java我怎样才能让两个JOptionPane一起出现在我的第一页上,并让它们在两个页面上都有正确的答案?   html无法访问java中资产文件夹内的文件   通过post命令向SpringWebApp发送对象时,java对象字段为null   单个实例中静态变量的类更改值(Java)   java解决方案是什么   试图检查网站所有受支持的密码套件的安全性,在java中遇到chacha20和poly1035问题