示例代码
所有文档

          百度信息流推广API

          示例代码

          示例代码是提供普通权限的请求方式,如果是MCC权限,头部有字段tgSubname,具体参考文档,提供各种 权限请求头部的json样式。

          #!/usr/bin/python
          #encoding=utf8
          
          import os
          import sys
          import urllib
          import urllib2
          import json
          import hashlib
          import hmac
          import time
          import datetime
          from urllib import quote
          from urlparse import urlparse
          
          def gen_auth(access_key, secret_key, utc_time_str, url, method):
              url_parse_ret = urlparse(url)
              host = url_parse_ret.hostname
              path = url_parse_ret.path
              version = "1"
              expiration_seconds = "1800"
              signature_headers = "host"
          
              # 1 Generate SigningKey
              val = "bce-auth-v%s/%s/%s/%s" % (version, access_key, utc_time_str, expiration_seconds)
              signing_key = hmac.new(secret_key, val, hashlib.sha256).hexdigest().encode('utf-8')
          
              # 2 Generate CanonicalRequest
              # 2.1 Genrate CanonicalURI
              canonical_uri = quote(path)
              # 2.2 Generate CanonicalURI: not used here
              # 2.3 Generate CanonicalHeaders: only include host here
              canonical_headers = "host:%s" % quote(host).strip()
              # 2.4 Generate CanonicalRequest
              canonical_request = "%s\n%s\n\n%s" % (method.upper(), canonical_uri, canonical_headers)
          
              # 3 Generate Final Signature 
              signature = hmac.new(signing_key, canonical_request, hashlib.sha256).hexdigest()
              authorization = "bce-auth-v%s/%s/%s/%s/%s/%s" % (version, access_key, utc_time_str, expiration_seconds, signature_headers, signature)
              print authorization
              return authorization
          	
          if __name__ == "__main__":
              #替换成你的AK/SK, 带有xxxx的自己填充,https://console.bce.baidu.com/iam/?_=1499420345823#/iam/accesslist
              access_key = "xxxx" 
              secret_key = "xxxx"
              url = "http://sem.baidubce.com/v1/feed/cloud/CreativeFeedService/addCreativeFeed"
              method = "POST"
              utc_time = datetime.datetime.utcnow()
              utc_time_str = utc_time.strftime("%Y-%m-%dT%H:%M:%SZ")
              auth = gen_auth(access_key, secret_key, utc_time_str, url, method)
          
              header = {
                  'accept-encoding':'gzip, deflate',
                  'host':'sem.baidubce.com',
                  'content-type':'application/json',
                  'x-bce-date': utc_time_str,
                  'authorization': auth,
                  'accept':'*/*'
              }
              data = {
              "body": {
                  "creativeFeedTypes": [
                      {
                          "creativeFeedName": "idea_3037293",
                          "materialstyle": 303,
                          "adgroupFeedName": "unit_2586",
                          "adgroupFeedId": "2539340784",
                          "material": "{ \"title\": \"idea_303\",\"pictures\": [ { \"image\": \"http://bj.bcebos.com/fc-feed/0/pic/ec8bfac5b80442a74047dc8210582b83.jpg\"} ],\"brand\": \"a推广\", \"url\": \"http://shen.com/\" }"
                      }
                  ]
              },
              "header": {
                  "opUsername": "xxxx",
                  "tgUsername": "xxxx",
                  #https://console.bce.baidu.com/iam/?_=1499420345823#/iam/baseinfo, 从这里可以看
                  "bceUser": "xxxx",
                  "opPassword": "xxxx",
                  "tgPassword": "xxxx"
              }
          }
          
             
              data = json.dumps(data)
              request = urllib2.Request(url, data, header)
              response = None
              try :
                  response = urllib2.urlopen(request)
                  post_res_str = response.read()
                  print post_res_str
              except urllib2.URLError, e:
                  print "URLError"
                  print e.code, e.reason
                  print e.read()
              except urllib2.HTTPError, e:
                  print "HTTPError"
                  print e.code, e.reason
                  print e.read()

          下载示例代码:

          Python代码示例

          上一篇
          接口规范
          下一篇
          账户模块