谷歌OATH2电子表格错误:无法找到指定的文件

本文关键字:文件 电子表格 OATH2 错误 谷歌 | 更新日期: 2023-09-27 18:11:34

在尝试授权c#应用程序访问电子表格时,我遇到了这个错误:

System.IO.FileNotFoundException: Could not load file or assembly 'Newtonsoft.Json, Version=4.0.5.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The system cannot find the file specified.
File name: 'Newtonsoft.Json, Version=4.0.5.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'
   at Google.GData.Client.OAuthBase.GetOAuth2AccessToken(OAuth2Parameters parameters, String requestBody)
   at Google.GData.Client.OAuthUtil.GetAccessToken(OAuth2Parameters parameters)
   at LibraryBookLister.Authorize.GetAuthorized() in C:'Users'John'Documents'Visual Studio 2013'Projects'LibraryBookLister'LibraryBookLister'Authorize.cs:line 54
=== Pre-bind state information ===
LOG: DisplayName = Newtonsoft.Json, Version=4.0.5.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed
 (Fully-specified)
LOG: Appbase = file:///C:/Users/John/Documents/Visual Studio 2013/Projects/LibraryBookLister/LibraryBookLister/bin/Debug/
LOG: Initial PrivatePath = NULL
Calling assembly : Google.GData.Client, Version=2.2.0.0, Culture=neutral, PublicKeyToken=04a59ca9b0273830.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:'Users'John'Documents'Visual Studio 2013'Projects'LibraryBookLister'LibraryBookLister'bin'Debug'LibraryBookLister.vshost.exe.Config
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:'Windows'Microsoft.NET'Framework'v4.0.30319'config'machine.config.
LOG: Post-policy reference: Newtonsoft.Json, Version=4.0.5.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed
LOG: The same bind was seen before, and was failed with hr = 0x80070002.

我以前从未见过这个,我想知道我做错了什么。当尝试获取访问令牌时发生此错误。

下面是我的类的完整代码:
using Google.GData.Client;
using Google.GData.Extensions;
using Google.GData.Spreadsheets;
using System;
using System.Diagnostics;
using System.IO;
using System.Windows.Forms;
namespace LibraryBookLister
{
    public partial class Authorize : Form
    {
        public Authorize()
        {
            InitializeComponent();
        }
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
        }


        OAuth2Parameters parameters = new OAuth2Parameters();
        public void GetAuthorized()
        {

            string clientId = "[ClientID]";      // From https://console.developers.google.com
            string clientSecret = "[ClientSecret]";          // From https://console.developers.google.com
            string SCOPE = "https://spreadsheets.google.com/feeds https://docs.google.com/feeds";
            string REDIRECT_URI = "urn:ietf:wg:oauth:2.0:oob";
            parameters.ClientId = clientId;
            parameters.ClientSecret = clientSecret;
            parameters.RedirectUri = REDIRECT_URI;
            parameters.Scope = SCOPE;
            SpreadsheetsService service = new SpreadsheetsService("GPLHS Activity Monitor");
            if (textCode.Text == "")
            {

                string authorizationUrl = OAuthUtil.CreateOAuth2AuthorizationUrl(parameters);
                Process.Start(authorizationUrl);
                return;
            }
            else
            {
                parameters.AccessCode = textCode.Text;
                try
                {
                    OAuthUtil.GetAccessToken(parameters);
                }
                catch(Exception e) { MessageBox.Show("Bad Token.   " + e.ToString()); System.Windows.Forms.Clipboard.SetText(e.ToString()); return; }
                string accessToken = parameters.AccessToken;
                StreamWriter sw = new StreamWriter(@"C:'Users'John'AppData'Roaming'Tokens'Token.txt", false);
                string refresht = parameters.RefreshToken.ToString();
                sw.Write(refresht);
                sw.Close();
                MessageBox.Show( "OAuth Access Token: " + accessToken);
                parameters.TokenExpiry.AddYears(2016);
                parameters.RefreshToken = parameters.RefreshToken;
                //        MessageBox.Show(parameters.TokenExpiry.ToLongDateString());
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            GetAuthorized();
        }
    }
}

谷歌OATH2电子表格错误:无法找到指定的文件

找到问题。打开包管理器并安装:Newtonsoft。Json这将解决这个问题!