0

ドキュメントのない API を使用していて、つまずきにぶつかりました。私は機能を持っています:

def add_to_publicaster(self):
    # function that is called in the background whenever a user signs the petition and opts in to the mailing list
    # Makes an API call to publicaster <--- More documentation to follow --->
    username = app.config['PUBLICASTER_USERID']
    userPass = app.config['PUBLICASTER_PASS']
    headers = {'Authorization': {username:userPass}, "Content-type" : "application/json", "Accept":'text/plain'}
    url = 'https://api7.publicaster.com/Rest/Subscribers.svc/1?format=json'
    data = {"Item": {
        "Email": "juliangindi@gmail.com"
        }
    }
    r = requests.post(url, headers = headers, data = data)

これは、次の形式で POST リクエストを作成すると仮定するだけです。

POST https://api7.publicaster.com/Rest/Subscribers.svc/1?format=json HTTP/1.1
Content-Type: application/json
Authorization: <AccountID>:<Password>
Host: api7.publicaster.com
Content-Length: 64
Expect: 100-continue
Connection: Keep-Alive
 { "Item" : {
  "Email" : mkucera@whatcounts.com
 }
}

ただし、関数内のコードは目的の要求を生成していません。どんなアドバイスもとても役に立ちます。

4

2 に答える 2

0

認証を正しく実行していません。関数は次のようになります。

def add_to_publicaster(self):
    # function that is called in the background whenever a user signs the petition and opts in to the mailing list
    # Makes an API call to publicaster <--- More documentation to follow --->
    username = app.config['PUBLICASTER_USERID']
    userPass = app.config['PUBLICASTER_PASS']
    headers = {"Content-type" : "application/json", "Accept":'text/plain'}
    url = 'https://api7.publicaster.com/Rest/Subscribers.svc/1?format=json'
    data = {"Item": {
        "Email": "juliangindi@gmail.com"
        }
    }
    r = requests.post(url, auth=(username, userPass), headers=headers, data=json.dumps(data))
于 2013-06-15T17:36:13.970 に答える
0

ヘッダーと URL は、JSON データを投稿したかったことを示しています。jsonライブラリを使用して Python 構造を JSON にエンコードします。

import json

# ...

data = {"Item": {
    "Email": "juliangindi@gmail.com"
    }
}
r = requests.post(url, headers = headers, data = json.dumps(data))

JSON は Python によく似ているかもしれませが、実際には JavaScript ソース コードの限定された形式です。

于 2013-06-14T15:32:16.043 に答える