2

ユーザーオブジェクトを必要とするエンドポイントメソッドがあります。私は次のことをしますか?ユーザーに使ってもらえるので少し変な感じがしますendpoints.get_current_user()

@endpoints.method(FriendListRequest, FriendListResponse,
                  path='scores', http_method='POST',
                  name='scores.list')
def friend_list(self, request):
  # work would go here

その場合、FriendListRequestは次のようになります

class FriendListRequest(messages.Message):
    user_object = messages.Field(1, required=True)

オブジェクトが必要な理由はUser、ユーザーの電子メールを使用して、そのユーザーの友達を照会および検索する必要があるためです。

4

2 に答える 2

3

ユーザーを安全に認証するために、Cloud Endpoints はシンプルな OAuth 2.0 サポートを提供します。リクエストでユーザー オブジェクト (安全でない) を渡す代わりに、リクエスト メッセージを にすることがVoidMessageでき、ユーザーの OAuth 2.0 トークンを含む Authorization ヘッダーを利用できます。

現在のユーザーを実際に取得するには、endpoints.get_current_user();を呼び出します。これには、デコレータまたはメソッドのいずれかにallowed_client_idsand/orを追加する必要があります。詳細については、ドキュメントを参照してください。audiences@endpoints.method@endpoints.api

たとえば、API では次のようになります。

@endpoints.api(name='myapi', ...,
               allowed_client_ids=[MY_CLIENT_ID])
class MyApi(...):

    @endpoints.method(message_types.VoidMessage, FriendListResponse,
                      path='scores', http_method='POST',
                      name='scores.list')
    def friend_list(self, request):
        user = endpoints.get_current_user()
        # work would go here

または、メソッドで:

    @endpoints.method(message_types.VoidMessage, FriendListResponse,
                      path='scores', http_method='POST',
                      name='scores.list',
                      allowed_client_ids=[MY_CLIENT_ID])
    def friend_list(self, request):
        user = endpoints.get_current_user()
        # work would go here
于 2013-03-20T16:47:25.970 に答える
0

users を使用してユーザーオブジェクトを作成し、同じものを渡します

User インスタンスは、電子メール アドレスから作成することもできます。

from google.appengine.api import users

user = users.User("A***.j***@gmail.com")
于 2013-03-20T06:50:26.200 に答える