2012-08-01 24 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; 
    } 
相关问题