Denis Muratshin 8 سال پیش
والد
کامیت
3db191ece4
4فایلهای تغییر یافته به همراه44 افزوده شده و 5 حذف شده
  1. 2 2
      src/facebook.cpp
  2. 2 2
      src/facebook.h
  3. 1 0
      src/ios/iosFacebook.h
  4. 39 1
      src/ios/iosFacebook.mm

+ 2 - 2
src/facebook.cpp

@@ -56,7 +56,7 @@ namespace facebook
 #elif TARGET_OS_IPHONE
         fLogin = iosFacebookLogin;
         fLogout = iosFacebookLogout;
-        fNewMeRequest = []() {OX_ASSERT(0); };
+        fNewMeRequest = iosFacebookRequestMe;
         fGetFriends = []() {OX_ASSERT(0); };
         fIsLoggedIn = []() {OX_ASSERT(0); return false; };
         fGetUserID = iosFacebookGetUserID;
@@ -209,7 +209,7 @@ namespace facebook
             else
             {
                 event.id = root["id"].asCString();
-                event.link = root["link"].asCString();
+                //event.link = root["link"].asCString();
                 event.name = root["name"].asCString();
             }
 

+ 2 - 2
src/facebook.h

@@ -22,7 +22,7 @@ namespace facebook
         NewMeRequestEvent() : Event(EVENT) {}
 
         string id;
-        string link;
+        //string link;
         string name;
         bool error = false;
     };
@@ -104,4 +104,4 @@ namespace facebook
         void newToken(const string& value);
         void newMyFriendsRequestResult(const string& data, bool error);
     }
-};
+};

+ 1 - 0
src/ios/iosFacebook.h

@@ -16,4 +16,5 @@ void iosFacebookLogout();
 std::string iosFacebookGetAccessToken();
 std::string iosFacebookGetUserID();
 std::string iosFacebookGetAppID();
+void iosFacebookRequestMe();
 #endif /* Header_h */

+ 39 - 1
src/ios/iosFacebook.mm

@@ -29,6 +29,7 @@ UIViewController * getViewcontrollerForFB(void)
     }
     @catch(NSException *e) {
     }
+    
     return nullptr;
 }
 
@@ -36,7 +37,9 @@ void iosFacebookLogin()
 {
     FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
     [login
-     logInWithReadPermissions: @[@"public_profile"]     handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
+     logInWithReadPermissions:@[@"public_profile"]
+     fromViewController:nil
+     handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
          
          if (error) {
              facebook::internal::loginResult(false);
@@ -73,3 +76,38 @@ std::string iosFacebookGetAppID()
 {
     return [[FBSDKSettings appID] UTF8String];
 }
+
+void iosFacebookRequestMe()
+{
+    if ([FBSDKAccessToken currentAccessToken])
+    {
+        [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:nil]
+         startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
+             if (error)
+             {
+                 facebook::internal::newMeRequestResult("", true);
+             }
+             else
+             {
+                 string data;
+                 
+                 NSError *error1;
+                 NSData *jsonData = [NSJSONSerialization dataWithJSONObject:result
+                                                                    options:0
+                                                                      error:&error1];
+                 
+                 if (jsonData)
+                 {
+                     NSString *str = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
+                     facebook::internal::newMeRequestResult([str UTF8String], false);
+                 }
+                 else
+                 {
+                     facebook::internal::newMeRequestResult("", true);
+                 }
+                 
+                 NSLog(@"fetched user:%@", result);
+             }
+         }];
+    }
+}