Added UserInfo support

This commit is contained in:
Jaex 2022-12-08 14:48:35 +03:00
parent ffaed07605
commit fc294e69ca
7 changed files with 21 additions and 6 deletions

View file

@ -68,7 +68,7 @@ public YouTube(OAuth2Info oauth)
{
OAuth2 = new GoogleOAuth2(oauth, this)
{
Scope = "https://www.googleapis.com/auth/youtube.upload"
Scope = "https://www.googleapis.com/auth/youtube.upload https://www.googleapis.com/auth/userinfo.profile"
};
}

View file

@ -733,6 +733,7 @@ private void LoadFileUploaderSettings()
#region YouTube
oauth2YouTube.Connected = OAuth2Info.CheckOAuth(Config.YouTubeOAuth2Info);
oauth2YouTube.UserInfo = Config.YouTubeUserInfo;
cbYouTubePrivacyType.Items.Clear();
cbYouTubePrivacyType.Items.AddRange(Helpers.GetLocalizedEnumDescriptions<YouTubeVideoPrivacy>());
cbYouTubePrivacyType.SelectedIndex = (int)Config.YouTubePrivacyType;
@ -3046,16 +3047,20 @@ private void oauth2YouTube_ConnectButtonClicked()
{
form.ShowDialog();
Config.YouTubeOAuth2Info = form.OAuth2Info;
Config.YouTubeUserInfo = form.UserInfo;
}
oauth2YouTube.Connected = Config.YouTubeOAuth2Info != null;
oauth2YouTube.UserInfo = Config.YouTubeUserInfo;
this.ForceActivate();
}
private void oauth2YouTube_DisconnectButtonClicked()
{
Config.YouTubeOAuth2Info = null;
Config.YouTubeUserInfo = null;
oauth2YouTube.Connected = false;
oauth2YouTube.UserInfo = null;
}
private void llYouTubePermissionsLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)

View file

@ -66,7 +66,7 @@ public GooglePhotos(OAuth2Info oauth)
{
GoogleAuth = new GoogleOAuth2(oauth, this)
{
Scope = "https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/photoslibrary https://www.googleapis.com/auth/photoslibrary.sharing"
Scope = "https://www.googleapis.com/auth/photoslibrary https://www.googleapis.com/auth/photoslibrary.sharing https://www.googleapis.com/auth/userinfo.profile"
};
}

View file

@ -27,6 +27,8 @@ namespace ShareX.UploadersLib
{
public interface IOAuth2Loopback : IOAuth2
{
OAuthUserInfo GetUserInfo();
string RedirectURI { get; set; }
string State { get; set; }
string Scope { get; set; }

View file

@ -34,6 +34,7 @@ public partial class OAuthListenerForm : Form
{
public IOAuth2Loopback OAuth { get; private set; }
public OAuth2Info OAuth2Info { get; private set; }
public OAuthUserInfo UserInfo { get; private set; }
private OAuthListener listener;
@ -47,7 +48,7 @@ public OAuthListenerForm(IOAuth2Loopback oauth)
private async void OAuthListenerForm_Load(object sender, EventArgs e)
{
OAuth2Info = await ConnectAsync(OAuth);
await ConnectAsync(OAuth);
Close();
}
@ -62,8 +63,11 @@ private void btnCancel_Click(object sender, EventArgs e)
Close();
}
private async Task<OAuth2Info> ConnectAsync(IOAuth2Loopback oauth)
private async Task<bool> ConnectAsync(IOAuth2Loopback oauth)
{
OAuth2Info = null;
UserInfo = null;
try
{
using (listener = new OAuthListener(oauth))
@ -72,7 +76,9 @@ private async Task<OAuth2Info> ConnectAsync(IOAuth2Loopback oauth)
if (result)
{
return listener.OAuth.AuthInfo;
OAuth2Info = listener.OAuth.AuthInfo;
UserInfo = await Task.Run(() => oauth.GetUserInfo());
return true;
}
}
}
@ -82,7 +88,7 @@ private async Task<OAuth2Info> ConnectAsync(IOAuth2Loopback oauth)
e.ShowError();
}
return null;
return false;
}
}
}

View file

@ -31,5 +31,6 @@ public class OAuthUserInfo
public string name { get; set; }
public string given_name { get; set; }
public string picture { get; set; }
public string locale { get; set; }
}
}

View file

@ -421,6 +421,7 @@ public class UploadersConfig : SettingsBase<UploadersConfig>
#region YouTube
public OAuth2Info YouTubeOAuth2Info { get; set; } = null;
public OAuthUserInfo YouTubeUserInfo { get; set; } = null;
public YouTubeVideoPrivacy YouTubePrivacyType { get; set; } = YouTubeVideoPrivacy.Public;
public bool YouTubeUseShortenedLink { get; set; } = false;
public bool YouTubeShowDialog { get; set; } = false;