Использовать фрагменты из библиотеки поддержки -
android.support.v4.app.Fragment
, а затем переопределить
void onAttach (Context context) {
this.context = context;
}
Таким образом, вы можете быть уверены, что контекст всегда будет ненулевым значением.
OAuth не предоставляет возможности для дополнительных параметров во время рукопожатия OAuth, поэтому я не думаю, что вы можете заставить Google предоставить их. Однако, вероятно, существует API Google, к которому можно обратиться с помощью маркера доступа OAuth, чтобы получить адрес электронной почты после квитирования.
запросить область OAuth, чтобы включить «Область отображения электронной почты» https://www.googleapis.com/auth/userinfo.email
scope="http://www.google.com/m8/feeds/ https://www.googleapis.com/auth/userinfo.email"
Затем используйте REST API, например Гамак , чтобы получить адрес
RestClient client = new RestClient
{
Authority = "https://www.googleapis.com",
};
RestRequest request = new RestRequest
{
Path = "userinfo/email?alt=json",
Credentials = OAuthCredentials.ForProtectedResource(
this.requestSettings.ConsumerKey,
this.requestSettings.ConsumerSecret,
this.requestSettings.Token,
this.requestSettings.TokenSecret)
};
var response = client.Request(request);
В php класс apiOauth2Service.php предоставляет методы для доступа к зарегистрированной информации пользователя. Для этого вы можете использовать метод userinfo-> get (). Убедитесь, что вы также используете область https://www.googleapis.com/auth/userinfo.email .
Это будет работать с тем же токеном доступа. Также вы должны попробовать поискать в других API аналогичную информацию в ответ. Это гораздо проще просмотреть через oAuth_playground >> http://code.google.com/apis/explorer/