получить client_id из foursquare по гему OAuth2 - PullRequest
0 голосов
/ 06 декабря 2011

Я пытаюсь получить историю места пользователя от foursquare.Я знаю, прежде всего, пользователь должен получить доступ к моему приложению.Я использую драгоценный камень OAuth2.Как я могу получить client_id пользователя?

cli = OAuth2::Client.new('CLIENT_ID', :authorize_url => "/oauth2/authorize", :token_url => "/oauth2/access_token", :site => 'https://foursquare.com')

хорошо, я просто редактирую свой вопрос.Я понял, почему должен использоваться client_id (спасибо Martin и umesh awasthi).Я спрашиваю, почему я не могу получить токен пользователя?весь мой код:

cli = OAuth2::Client.new(client_id, client_secret, :authorize_url => "/oauth2/authorize", :token_url => "/oauth2/access_token", :site => 'https://foursquare.com')
cli.auth_code.authorize_url(:redirect_uri => "http://localhost:3000")
token = cli.auth_code.get_token('authorization_code_value', :redirect_uri => "http://localhost:3000/person/index")
response = token.get('api/resource', :params => {'query_foo' => 'bar'})
response.class.name

Ответы [ 2 ]

2 голосов
/ 06 декабря 2011

См. Ответ Martin идентификатор клиента - это уникальный идентификатор, связанный с вашим приложением. Все поставщики услуг OAuth нуждаются в этом идентификаторе клиента для идентификации себя.

Я предлагаю вам сначала немного разобраться с OAuth, так как этот протокол работает над двумя основными вещами

 1. Client_id: this is a unique id assigned to your application you
    create on any Oauth service provider or when you register you application.

 2. Secret_key:This is another part of Oauth communication which use to 
    Authenticate the  consumer i.e you application.

Хотя некоторые системы Oauth, такие как Google, предоставляют анонимные звонки, но это никогда не поощряется.

Таким образом, какую бы службу OAuth вы не использовали, вам нужно зарегистрировать ваше приложение у них и получить client_key и secret, которые должны быть частью каждого вашего общения с OAuth

вот быстрые шаги, сделанные на сайте forsquare

Redirect users who wish to authenticate to

https://foursquare.com/oauth2/authenticate
    ?client_id=YOUR_CLIENT_ID
    &response_type=code
    &redirect_uri=YOUR_REGISTERED_REDIRECT_URI

Если пользователь принимает, они будут перенаправлены обратно на

https://YOUR_REGISTERED_REDIRECT_URI/?code=CODE

как только пользователь авторизует вас, OAuth будет перенаправлять обратно с кодом, который вам нужно будет снова передать, чтобы получить маркер доступа

  Your server will make a request for

https://foursquare.com/oauth2/access_token
?client_id=YOUR_CLIENT_ID
&client_secret=YOUR_CLIENT_SECRET
&grant_type=authorization_code
&redirect_uri=YOUR_REGISTERED_REDIRECT_URI
&code=CODE

Ответ будет JSON

{ access_token: ACCESS_TOKEN }

Сохраните этот токен доступа для этого пользователя в своей базе данных. Надеюсь, это помошь поможет вам

0 голосов
/ 06 декабря 2011

client_id - это client_id для вашего приложения, который вы получаете при регистрации приложения здесь . Он связан не с конкретным пользователем, а с вашим приложением.

...