2012-08-01 56 views
1

我正在使用FB C#SDK。可能我的問題是非常基本的,但我已經嘗試了很多選擇,我無法解決我的問題。問題與FB C#SDK Get方法,它適用於靜態字符串,但不適用於與變量形成的字符串

我使用get方法從facebook中檢索信息,它與專輯完美配合,所以它不是access_token或初始化的問題。

這是我使用的代碼行,它會將對象與相冊信息一起返回給我,對於任何用戶來說,自從應用程序要求提供所有相冊後,它將始終保持不變。它工作正常:

dynamic fotos = client.Get("me/albums"); 

問題是當我索要照片,因爲它是第就像專輯的靜態值,它是一個基於用戶選擇的值,所以,我用,而不是一個變量:

public ActionResult Photos(string albumstring) 
      { 
      ... more code asking for token, etc. 

    dynamic fotos = client.Get(albumstring); 

在那裏失敗,它返回一個空對象。相冊字符串中的字符串文本正是需要的字符串文本:「10150240194251714/photos」,但它不起作用。

我測試了它staticly這個樣子,和它的作品!:

 public ActionResult Photos(string albumstring) 
      { 
      ... more code asking for token, etc. 

    albumstring2 = "10150240194251714/photos"; 

    dynamic fotos = client.Get(albumstring2); 

但只有當它是一個靜態值,具有可變混合這使得它失敗了,就像這個例子工程:

 public ActionResult Photos(string albumId) 
      { 
      ... more code asking for token, etc. 

    albumstring = albumId + "/photos"; 

    dynamic fotos = client.Get(albumstring); 

我已經嘗試了很多不同的方法來構造像StringBuilders這樣的字符串,添加了轉義字符\,從視圖構造它並將它完成到控制器等等。但是,似乎如果字符串不是直接寫它是行不通的。

可能是來自fb c#sdk的錯誤,但我需要解決它,並且我沒有想法。

回答

1

這是我使用的方法,它可以很好地檢索一些專輯photosm,其中類AlbumPhoto只是一個DTO來捕獲數據。我希望它有幫助

public static List<AlbumPhoto> GetAlbumPhotos(string userAccessToken, string albumId) 
    { 
     var list = new List<AlbumPhoto>(); 
     var client = new FacebookClient(userAccessToken); 

     dynamic photos = client.Get(String.Format("/{0}/photos", albumId)); 
     foreach (var photo in photos.data) 
     { 
      lista.Add(new AlbumPhoto 
      { 
       FacebookId = photo.id, 
       Name = photo.name, 
       ImageUrl = photo.source, 
       Height = (int)photo.height, 
       Width = (int)photo.width 
      }); 
     } 
     return list; 
    } 
相關問題