1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
use oauth2_client::re_exports::{Deserialize_enum_str, Scope, Serialize_enum_str};

pub const TOKEN_URL: &str = "https://graph.facebook.com/v15.0/oauth/access_token";
pub const AUTHORIZATION_URL: &str = "https://www.facebook.com/v15.0/dialog/oauth";
pub const DEVICE_TOKEN_URL: &str = "https://graph.facebook.com/v15.0/device/login_status";
pub const DEVICE_AUTHORIZATION_URL: &str = "https://graph.facebook.com/v15.0/device/login";

pub mod authorization_code_grant;
pub mod device_authorization_grant;

pub use authorization_code_grant::FacebookProviderForWebApp;
pub use device_authorization_grant::FacebookProviderForDevices;

pub mod extensions;
pub use extensions::FacebookExtensionsBuilder;

#[derive(Deserialize_enum_str, Serialize_enum_str, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "snake_case")]
pub enum FacebookScope {
    // Ref https://github.com/bk-rs/facebook-rs/blob/master/facebook-permission/src/lib.rs
    AdsManagement,
    AdsRead,
    AttributionRead,
    BusinessManagement,
    CatalogManagement,
    Email,
    GamingUserLocale,
    GroupsAccessMemberInfo,
    InstagramBasic,
    InstagramContentPublish,
    InstagramManageComments,
    InstagramManageInsights,
    InstagramShoppingTagProducts,
    LeadsRetrieval,
    PagesEvents,
    PagesManageAds,
    PagesManageCta,
    PagesManageInstantArticles,
    PagesManageEngagement,
    PagesManageMetadata,
    PagesManagePosts,
    PagesMessaging,
    PagesReadEngagement,
    PagesReadUserContent,
    PagesShowList,
    PagesUserGender,
    PagesUserLocale,
    PagesUserTimezone,
    PrivateComputationAccess,
    PublicProfile,
    PublishToGroups,
    PublishVideo,
    ReadInsights,
    ResearchApis,
    UserAgeRange,
    UserBirthday,
    UserFriends,
    UserGender,
    UserHometown,
    UserLikes,
    UserLink,
    UserLocation,
    UserMessengerContact,
    UserPhotos,
    UserPosts,
    UserVideos,
    WhatsappBusinessManagement,
    WhatsappBusinessMessaging,
    //
    //
    //
    #[serde(other)]
    Other(String),
}
impl Scope for FacebookScope {}