0

OAuthLib を使用して、訪問者が LinkedIn で私の Web サイトにログインできるようにしています。私は今、彼らのプロフィールに共有(更新)を投稿したいと思っています(ここで説明されているように)。これは、次のコードを使用して実行しようとしています。

xmlStr = '<share><comment>This is a comment.</comment><content><title>This is the title</title><description>This is the description</description><submitted-url>http://www.isittuesday.co.uk</submitted-url><submitted-image-url>http://stunningplaces.net/wp-content/uploads/2014/05/11-Rio-de-Janeiro-Cochabana-Beach.-Photo-by-ballnkicka.com_.jpg</submitted-image-url></content><visibility><code>connections-only</code></visibility></share>'
r = linkedInApp.post('people/~/shares', data=xmlStr, headers={'content-type': 'application/xml'})

残念ながら、これにより 2 行目にValueError: need more than 1 value to unpack(traceback below message) というエラーが表示されます。

誰が何が悪いのか知っていますか?すべてのヒントは大歓迎です!

Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/flask/app.py", line 1820, in wsgi_app
    response = self.make_response(self.handle_exception(e))
  File "/Library/Python/2.7/site-packages/flask/app.py", line 1403, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/Library/Python/2.7/site-packages/flask/app.py", line 1817, in wsgi_app
    response = self.full_dispatch_request()
  File "/Library/Python/2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/Library/Python/2.7/site-packages/flask/app.py", line 1381, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/Library/Python/2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request
    rv = self.dispatch_request()
  File "/Library/Python/2.7/site-packages/flask/app.py", line 1461, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/Users/kramer65/repos/v/app/views.py", line 694, in authorized
    r = linkedInApp.post('people/~/shares', data=xmlStr, headers={'content-type': 'application/xml'})
  File "/Library/Python/2.7/site-packages/flask_oauthlib/client.py", line 371, in post
    return self.request(*args, **kwargs)
  File "/Library/Python/2.7/site-packages/flask_oauthlib/client.py", line 424, in request
    data, content_type = encode_request_data(data, format)
  File "/Library/Python/2.7/site-packages/flask_oauthlib/client.py", line 154, in encode_request_data
    return url_encode(data or {}), 'application/x-www-form-urlencoded'
  File "/Library/Python/2.7/site-packages/werkzeug/urls.py", line 729, in url_encode
    return separator.join(_url_encode_impl(obj, charset, encode_keys, sort, key))
  File "/Library/Python/2.7/site-packages/werkzeug/urls.py", line 308, in _url_encode_impl
    for key, value in iterable:
ValueError: need more than 1 value to unpack
4

1 に答える 1

1

モジュールには、引数なしでメソッドflask_oauthlib.clientを呼び出すと、それがデータになるという奇妙な動作があります。引数 ( ) はプレーン文字列であるため、例外が発生します。request/get/postcontent_typeurl_encodedataxmlStr

要するに、呼び出しを次のように変更すれば、すべて問題ないはずです。

r = linkedInApp.post('people/~/shares', data=xmlStr, content_type='application/xml')
于 2015-02-05T17:09:44.163 に答える