次の例のように、Python クライアント ライブラリを使用して、サービス アカウント (クライアントの電子メールと p12 証明書) を介して Google の doubeclick API に接続しようとしています。
http://code.google.com/p/google-api-python-client/source/browse/samples/service_account/tasks.py
空の access_token が返されます:
In [9]: type(credentials.access_token)
Out[9]: <type 'NoneType'>
これにはどのような意味がありますか?私が間違っている可能性があることはありますか?また、例のようにタスクAPIにアクセスしようとしましたが(おそらくdoubleclick APIはサポートされているスコープではないと考えています)、同じ結果です。
更新 (コード例):
from oauth2client.client import SignedJwtAssertionCredentials
import httplib2
from adspygoogle.dfp import DfpClient
f = file('/path/to/.ssh/google-api.p12', 'rb')
key = f.read()
f.close()
credentials = SignedJwtAssertionCredentials('<email>', key, scope='https://www.google.com/apis/ads/publisher')
credentials.refresh(http)
http = httplib2.Http()
http = credentials.authorize(http)
client = DfpClient.DfpClient(headers={'networkCode': '<code>', 'applicationName': 'test', 'userAgent': 'test', 'oauth2credentials': credentials})
inventory_service = client.GetInventoryService()
inventory_service.getAdUnitsByStatement({'query':''})
エラー:
DfpAuthenticationError: [AuthenticationError.NO_NETWORKS_TO_ACCESS @ ]