2017-03-15 184 views
-1

我有一个web应用程序,它运行一个计划作业,该作业从我管理的页面中获取Facebook评论。这里是一个片段Facebook访问令牌持续过期c#

public void Execute(IJobExecutionContext context) 
    { 
     //get api details from the web.config 
     var pageId = WebConfigurationManager.AppSettings["FacebookPageId"]; 
     var token = WebConfigurationManager.AppSettings["FacebookAPIToken"]; 

     if (!string.IsNullOrEmpty(token)) 
     { 
      //create a facebook client object 
      var client = new FacebookClient(token); 

      //make a call to facebook to retrieve the json data 
      dynamic graphJson = client.Get(pageId + "?fields=ratings{review_text,reviewer,rating}").ToString(); 

      //deserialize the json returned from facebook 
      ReviewDeserializeData reviews = JsonConvert.DeserializeObject<ReviewDeserializeData>(graphJson); 

      //loop through the deserialized data and pass each review to the import class 
      foreach (var rating in reviews.ratings.data) 
      { 
       var fbRating = new FacebookRating 
        { 
         RatingReviewerId = long.Parse(rating.reviewer.id), 
         StarRating = rating.rating, 
         ReviewerName = rating.reviewer.name, 
         ReviewText = rating.review_text 
        }; 

       ImportFacebookRating.ImportTheFacebookRating(fbRating); 
      } 
     } 

    } 

这个工程很好,直到页面访问令牌过期。我尝试过以下很多文章,例如这一个https://medium.com/@Jenananthan/how-to-create-non-expiry-facebook-page-token-6505c642d0b1#.24vb5pyiv,但我没有运气确定令牌过期。

有谁知道我可以做到这一点,或者有没有办法以编程方式生成一个新的令牌,如果现有的已过期?此刻我已将它作为应用程序设置存储在web.config中。

感谢

回答