2014-06-19 9 views
6

Resim ile birlikte konumu Facebook'a paylaşmaya çalışıyorum. Resmi başarıyla paylaştım ancak konumu paylaşamıyorum. Aşağıda resim paylaşma kodum var.IOS'ta facebook'a görüntü ile konum nasıl gönderilir?

UIImage *facebookImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@%@",imagesURL,str]]]]; 
NSMutableDictionary* params = [[NSMutableDictionary alloc] init]; 
[params setObject:@"New Happening created on the HappenShare mobile app." forKey:@"message"]; 
[params setObject:facebookImage forKey:@"picture"]; 
[FBRequestConnection startWithGraphPath:@"me/photos" parameters:params HTTPMethod:@"POST" completionHandler:^(FBRequestConnection *connection,id result,NSError *error) 
{ 
    if (error) 
    { 
     NSLog(@"error : %@",error); 
    } 
    else 
    { 
     NSLog(@"Result : %@",result); 
    } 
}]; 

Şimdi paylaşım konumunun kodu üzerinde hangi parametreyi eklemem gerekir. Paylaşılan konumun nasıl görüneceğini daha iyi anlamak için bir görüntü ekliyorum.Belge görüntü, metnin görüntünün haritaya nasıl bir konum göstereceğini gösterir. Lütfen bana bunun için bir çözüm öner. enter image description here

cevap

2
"mesaj" ile birlikte

ve ayrıca ihtiyaç "yer" ID: Burada anlatıldığı gibi

, bunun için FB iOS SDK PlacePicker UI bileşeni kullanabilirsiniz, https://developers.facebook.com/docs/graph-api/reference/v2.0/user/photos/#publish iOS'ta

gör param olarak yayınlamak.

"Yayınlama işlemleri" için istekte bulunarak yer/konum gönderebilirsiniz. Aşağıda

i kullandım kodudur: Ayrıca Geliştirici sayfasında verilen "yönetici/test" hesaplarıyla kontrol edebilirsiniz

NSMutableDictionary *params = [NSMutableDictionary dictionary]; 
        [params setObject:@"Hello World" forKey:@"message"]; 
        [params setObject:@"110503255682430"/*sample place id*/ forKey:@"place"]; 
[[[FBSDKGraphRequest alloc] initWithGraphPath:@"/me/feed" parameters:params HTTPMethod:@"POST"] startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) { 
         NSLog(@"result %@",result); 
         NSLog(@"error %@",error); 
}]; 

-> uygulama -> Roller. Daha iyi uygulama için Kullanım Grafiği kaşif: Kodun altında https://developers.facebook.com/tools/explorer/108895529478793?method=POST&path=me%2Ffeed%3F&version=v2.5&message=Hello%20world&place=110503255682430

yerin yakınındaki yer kimliğini almak size yardımcı olabilir:

NSMutableDictionary *params2 = [NSMutableDictionary dictionaryWithCapacity:4L]; 
    [params2 setObject:[NSString stringWithFormat:@"%@,%@",YourLocation latitude,YourLocation longitude] forKey:@"center"]; //Hard code coordinates for test 
    [params2 setObject:@"place" forKey:@"type"]; 
    [params2 setObject:@"100"/*meters*/ forKey:@"distance"]; 

[[[FBSDKGraphRequest alloc] initWithGraphPath:@"/search" parameters:params2 HTTPMethod:@"GET"] startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) { 
        NSLog(@"RESPONSE!!! /search"); 
}]; 

VEYA

[[[FBSDKGraphRequest alloc] initWithGraphPath:@"/search?type=place&center=YourLocationLat,YourLocationLong&distance=500" parameters:nil HTTPMethod:@"GET"] startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) { 
        NSLog(@"result %@",result); 
}]; 

Eğer size yardımcı Umut ..

0

@Satish'in Swift 3.2 sürümü A yanıtı.

let photo = Photo(image: img, userGenerated: true) 
var content = PhotoShareContent() 
content.photos = [photo] 
content.placeId = id //Facebook placeId 
let sharer = GraphSharer(content: content) 
sharer.failsOnInvalidData = true 

do { 
    try sharer.share() 
} catch { 
    print("errorrrr") 
} 

sharer.completion = { FBresult in 

    switch FBresult { 
    case .failed(let error): 
     print(error) 
     break 
    case .success(_): 
     //code 
     break 
    default: 
     break 
    } 
} 
placeId

takılarak ile Facebook paylaşımı için
func getPlaceId() { 

    let locManager = CLLocationManager() 
    locManager.requestWhenInUseAuthorization() 

    var currentLocation = CLLocation() 

    if(CLLocationManager.authorizationStatus() == .authorizedWhenInUse || 
     CLLocationManager.authorizationStatus() == .authorizedAlways) { 

     currentLocation = locManager.location! 

     let param = ["center":"\(currentLocation.coordinate.latitude),\(currentLocation.coordinate.longitude)","type":"place","distance":"100"] 

     FBSDKGraphRequest(graphPath: "/search", parameters: param).start(completionHandler: { (connection, result, error) -> Void in 
      if (error == nil) { 
       guard let data = result as? NSDictionary else { 
        return 
       } 
       guard let arrPlaceIDs = data.value(forKey: "data") as? [NSDictionary] else { 
        return 
       } 
       guard let firstPlace = arrPlaceIDs.first else { 
        return 
       } 
       //First facebook place id. 
       print(firstPlace.value(forKey: "id") as! String) 
      } else { 
       print(error?.localizedDescription ?? "error") 
      } 
     }) 
    } 
} 

İlgili konular