Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion samples/LoginCpp-UWP/LoginCpp/Common/SuspensionManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -468,7 +468,7 @@ Object^ ObjectSerializeHelper::ReadObject(DataReader^ reader)
case StreamTypes::BooleanType:
return reader->ReadBoolean();
case StreamTypes::Char16Type:
return (char16_t) reader->ReadUInt16();
return (wchar_t) reader->ReadUInt16();
case StreamTypes::GuidType:
return reader->ReadGuid();
case StreamTypes::StringType:
Expand Down
16 changes: 8 additions & 8 deletions samples/LoginCpp-UWP/LoginCpp/LoginCpp.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
<AppContainerApplication>true</AppContainerApplication>
<ApplicationType>Windows Store</ApplicationType>
<ApplicationTypeRevision>8.2</ApplicationTypeRevision>
<WindowsTargetPlatformVersion>10.0.10240.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.10240.0</WindowsTargetPlatformMinVersion>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.19041.0</WindowsTargetPlatformMinVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<ItemGroup Label="ProjectConfigurations">
Expand Down Expand Up @@ -41,35 +41,35 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v140</PlatformToolset>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v140</PlatformToolset>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v140</PlatformToolset>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
Expand Down
13 changes: 10 additions & 3 deletions samples/LoginCpp-UWP/LoginCpp/MainPage.xaml.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,12 +52,19 @@ using namespace Windows::Globalization::DateTimeFormatting;
#define FBStoreAppIDName L"FBWindowsAppId"
#define PermissionGranted L"granted"

/// <summary>
/// This array is used to ask for this specific permissions
/// <c>public_profile</c> permission works for graph and gaming graph api, but
/// Facebook suggest the use of <c>gaming_profile</c> if you call to gaming graph
/// specifically.
/// <c>user_friends</c> retrive friends and require an special request to Facebook team
/// if you enable gaming graph
/// </summary>
const wchar_t* requested_permissions[] =
{
L"public_profile",
L"email",
L"user_friends",
L"user_likes",
L"user_location"
};

MainPage::MainPage()
Expand Down Expand Up @@ -105,7 +112,7 @@ BOOL MainPage::DidGetAllRequestedPermissions(
BOOL success = FALSE;
FBAccessTokenData^ data = FBSession::ActiveSession->AccessTokenData;

if (data)
if (data && data->DeclinedPermissions)
{
success = !data->DeclinedPermissions->Values->Size;
}
Expand Down
4 changes: 2 additions & 2 deletions samples/LoginCpp-UWP/LoginCpp/Resources.resw
Original file line number Diff line number Diff line change
Expand Up @@ -118,11 +118,11 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="FBApplicationId" xml:space="preserve">
<value>1606735379540755</value>
<value>1025365401567256</value>
<comment>Facebook Application ID</comment>
</data>
<data name="FBWindowsAppId" xml:space="preserve">
<value>s-1-15-2-908073630-820309149-3659463426-2390003274-961246107-3746849113-484503760</value>
<value>s-1-15-2-3089487911-215249050-3399914704-2991134715-266043697-3786854407-3873117276</value>
<comment>Facebook "Windows Store ID" - the SID for the app (from a call to WebAuthenticationBroker::GetCurrentApplicationCallbackUri</comment>
</data>
<data name="FBWinPhoneAppId" xml:space="preserve">
Expand Down
2 changes: 2 additions & 0 deletions winsdkfb/winsdkfb/winsdkfb.Shared/FBConstants.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
#define FACEBOOK_DESKTOP_SERVER_NAME L"https://www.facebook.com"
#define FACEBOOK_MOBILE_SERVER_NAME L"https://m.facebook.com"
#define FACEBOOK_LOGIN_SUCCESS_PATH L"/connect/login_success.html"
#define FACEBOOK_API_8_OR_ABOVE 1


// Define the base version of the SDK.
// Keep in sync with winsdkfb\build\nuget\VERSION
Expand Down
10 changes: 10 additions & 0 deletions winsdkfb/winsdkfb/winsdkfb.Shared/FacebookAccessTokenData.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,9 @@ FBAccessTokenData::FBAccessTokenData(
#ifdef _DEBUG
DebugPrintExpirationTime();
#endif

std::wstring wsAccessToken(AccessToken->Data());
_graphDomain = (wsAccessToken.substr(0, 2) == L"GG") ? L"gaming" : L"facebook";
}

FBAccessTokenData::FBAccessTokenData(
Expand All @@ -64,13 +67,20 @@ FBAccessTokenData::FBAccessTokenData(
Vector<String^>^ v = ref new Vector<String^>(0);
_grantedPermissions = ref new FBPermissions(v->GetView());
_declinedPermissions = ref new FBPermissions(v->GetView());
std::wstring wsAccessToken(AccessToken->Data());
_graphDomain = (wsAccessToken.substr(0, 2) == L"GG") ? L"gaming" : L"facebook";
}

String^ FBAccessTokenData::AccessToken::get()
{
return _accessToken;
}

String^ FBAccessTokenData::GraphDomain::get()
{
return _graphDomain;
}

DateTime FBAccessTokenData::ExpirationDate::get()
{
return _expirationDate;
Expand Down
9 changes: 9 additions & 0 deletions winsdkfb/winsdkfb/winsdkfb.Shared/FacebookAccessTokenData.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,14 @@ namespace winsdkfb
Platform::String^ get();
}

/**
* Graph domain should be used for current access token.
*/
property Platform::String^ GraphDomain
{
Platform::String^ get();
}

/**
* Expiration date of the access token.
*/
Expand Down Expand Up @@ -119,6 +127,7 @@ namespace winsdkfb
#endif

Platform::String^ _accessToken;
Platform::String^ _graphDomain;
Windows::Foundation::DateTime _expirationDate;
FBPermissions^ _grantedPermissions;
FBPermissions^ _declinedPermissions;
Expand Down
15 changes: 14 additions & 1 deletion winsdkfb/winsdkfb/winsdkfb.Shared/FacebookClient.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -398,8 +398,8 @@ Uri^ FBClient::PrepareRequestUri(
PropertySet^ parameters
)
{
String^ graphDomain = L"facebook";
FBSession^ sess = FBSession::ActiveSession;
GraphUriBuilder^ uriBuilder = ref new GraphUriBuilder(path);

if (parameters == nullptr)
{
Expand Down Expand Up @@ -427,11 +427,24 @@ Uri^ FBClient::PrepareRequestUri(
sess->AccessTokenData->AccessToken);
}

// For applications using Facebook Login for Gaming, graph API requests
// should be sent to different graph domain: graph.fb.gg
if (parametersWithoutMediaObjects->HasKey("access_token"))
{
String^ accessToken = safe_cast<String^>(parametersWithoutMediaObjects->Lookup("access_token"));
std::wstring wsAccessToken(accessToken->Data());
if ((wsAccessToken.substr(0, 2) == L"GG"))
{
graphDomain = L"gaming";
}
}

if (parametersWithoutMediaObjects->HasKey("format"))
{
parametersWithoutMediaObjects->Insert("format", "json-strings");
}

GraphUriBuilder^ uriBuilder = ref new GraphUriBuilder(path, graphDomain);
SerializeParameters(parametersWithoutMediaObjects);

// Add remaining parameters to query string. Note that parameters that
Expand Down
19 changes: 14 additions & 5 deletions winsdkfb/winsdkfb/winsdkfb.Shared/FacebookSession.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -98,8 +98,8 @@ FBSession::FBSession() :
{
login_evt = CreateEventEx(NULL, NULL, 0, DELETE | SYNCHRONIZE);
}
_APIMajorVersion = 2;
_APIMinorVersion = 6;
_APIMajorVersion = 11;
_APIMinorVersion = 0;
#if WINAPI_FAMILY==WINAPI_FAMILY_PHONE_APP
_webViewRedirectDomain = FACEBOOK_MOBILE_SERVER_NAME;
#else
Expand Down Expand Up @@ -209,8 +209,15 @@ task<FBResult^> FBSession::GetUserInfo(
)
{
PropertySet^ parameters = ref new PropertySet();
parameters->Insert(L"fields",
L"gender,link,first_name,last_name,locale,timezone,email,updated_time,verified,name,id,picture");
if (TokenData->GraphDomain == L"gaming")
{
parameters->Insert(L"fields", L"link,email,name,id,picture");
}
else
{
parameters->Insert(L"fields",
L"gender,link,first_name,last_name,locale,timezone,email,updated_time,verified,name,id,picture");
}
FBSingleValue^ value = ref new FBSingleValue(
"/me",
parameters,
Expand Down Expand Up @@ -1326,7 +1333,9 @@ int FBSession::APIMinorVersion::get()
void FBSession::SaveGrantedPermissions()
{
auto values =FBSession::DataContainer->Values;
values->Insert(GRANTED_PERMISSIONS_KEY, AccessTokenData->GrantedPermissions->ToString());
if (AccessTokenData->GrantedPermissions != nullptr) {
values->Insert(GRANTED_PERMISSIONS_KEY, this->_AccessTokenData->GrantedPermissions->ToString());
}
}

String^ FBSession::GetGrantedPermissions()
Expand Down
11 changes: 10 additions & 1 deletion winsdkfb/winsdkfb/winsdkfb.Shared/GraphUriBuilder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,13 @@ using namespace Windows::Foundation::Collections;
using namespace winsdkfb;


GraphUriBuilder::GraphUriBuilder(String^ path)
GraphUriBuilder::GraphUriBuilder(String^ path, String^ graphDomain)
:
_queryParams { ref new PropertySet() }
{
Uri^ testUri;
// New api returns partial URL, and needs to be builded after this block
#if !FACEBOOK_API_8_OR_ABOVE
bool buildDomain = false;
try
{
Expand All @@ -41,10 +43,17 @@ GraphUriBuilder::GraphUriBuilder(String^ path)
{
buildDomain = true;
}
#else
bool buildDomain = true;
#endif

if (buildDomain)
{
String^ domain = L"https://graph.facebook.com/";
if (graphDomain == L"gaming")
{
domain = L"https://graph.fb.gg/";
}
testUri = ref new Uri(domain + path);
}
_host = testUri->Host;
Expand Down
2 changes: 1 addition & 1 deletion winsdkfb/winsdkfb/winsdkfb.Shared/GraphUriBuilder.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ namespace winsdkfb
public ref class GraphUriBuilder sealed
{
public:
GraphUriBuilder(Platform::String^ path);
GraphUriBuilder(Platform::String^ path, Platform::String^ graphDomain);

Windows::Foundation::Uri^ MakeUri();
void AddQueryParam(Platform::String^ query, Platform::String^ param);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
<AppContainerApplication>true</AppContainerApplication>
<ApplicationType>Windows Store</ApplicationType>
<WindowsTargetPlatformVersion>10.0.10240.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.10240.0</WindowsTargetPlatformMinVersion>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.19041.0</WindowsTargetPlatformMinVersion>
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>
<UnitTestPlatformVersion Condition="'$(UnitTestPlatformVersion)' == ''">14.0</UnitTestPlatformVersion>
<EnableDotNetNativeCompatibleProfile>true</EnableDotNetNativeCompatibleProfile>
Expand Down Expand Up @@ -43,37 +43,37 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v140</PlatformToolset>
<PlatformToolset>v142</PlatformToolset>
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v140</PlatformToolset>
<PlatformToolset>v142</PlatformToolset>
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v140</PlatformToolset>
<PlatformToolset>v142</PlatformToolset>
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
Expand Down
14 changes: 11 additions & 3 deletions winsdkfb/winsdkfb_uwp/FBWinStoreCsTests/FBWinStoreCsTests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@
<AssemblyName>FBWinStoreCsTests</AssemblyName>
<DefaultLanguage>en-US</DefaultLanguage>
<TargetPlatformIdentifier>UAP</TargetPlatformIdentifier>
<TargetPlatformVersion>10.0.10240.0</TargetPlatformVersion>
<TargetPlatformMinVersion>10.0.10240.0</TargetPlatformMinVersion>
<TargetPlatformVersion>10.0.17763.0</TargetPlatformVersion>
<TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
<MinimumVisualStudioVersion>14</MinimumVisualStudioVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
Expand All @@ -23,6 +23,7 @@
<AppxBundlePlatforms>x86|x64|arm</AppxBundlePlatforms>
<AppxBundle>Never</AppxBundle>
<PackageCertificateThumbprint>F4E6BFEE8265BFC1A3B4A18D7F46397C6891526C</PackageCertificateThumbprint>
<RuntimeIdentifiers>win10-arm;win10-arm-aot;win10-x86;win10-x86-aot;win10-x64;win10-x64-aot</RuntimeIdentifiers>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|ARM'">
<DebugSymbols>true</DebugSymbols>
Expand Down Expand Up @@ -104,7 +105,6 @@
<None Include="..\..\winsdkfb_testing_key.pfx">
<Link>winsdkfb_testing_key.pfx</Link>
</None>
<None Include="project.json" />
<SDKReference Include="MSTestFramework.Universal, Version=$(UnitTestPlatformVersion)" />
<SDKReference Include="TestPlatform.Universal, Version=$(UnitTestPlatformVersion)" />
</ItemGroup>
Expand Down Expand Up @@ -222,6 +222,14 @@
<Name>winsdkfb</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform">
<Version>5.0.0</Version>
</PackageReference>
<PackageReference Include="Newtonsoft.Json">
<Version>7.0.1</Version>
</PackageReference>
</ItemGroup>
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' &lt; '14.0' ">
<VisualStudioVersion>14.0</VisualStudioVersion>
</PropertyGroup>
Expand Down
Loading