【问题标题】:AdWords API in ASP.NET. Can I avoid using the `user` object?ASP.NET 中的 AdWords API。我可以避免使用“用户”对象吗?
【发布时间】:2018-04-17 20:38:43
【问题描述】:

故事是:我正在构建一个 Node 应用程序,但我需要来自 Google AdWords 的数据。由于没有官方的 Node 库,而且我无法让非官方的库工作,我想在 ASP.NET 中创建一个 REST API。到目前为止,这就是我所拥有的:

[HttpGet]
public IEnumerable<string> Get()
{
    TargetingIdeaSelector selector = new TargetingIdeaSelector
    {
        requestType = RequestType.IDEAS,
        ideaType = IdeaType.KEYWORD,
        requestedAttributeTypes = new AttributeType[] {
    AttributeType.KEYWORD_TEXT,
    AttributeType.SEARCH_VOLUME,
    AttributeType.AVERAGE_CPC,
    AttributeType.COMPETITION,
    AttributeType.CATEGORY_PRODUCTS_AND_SERVICES
}
    };

    // Set selector paging (required for targeting idea service).
    Paging paging = Paging.Default;

    // Create related to query search parameter.
    RelatedToQuerySearchParameter relatedToQuerySearchParameter =
        new RelatedToQuerySearchParameter
        {
            queries = new String[] {
        "bakery", "pastries", "birthday cake"
            }
        };
    var searchParameters = new List<SearchParameter>
        {
            relatedToQuerySearchParameter
        };

    TargetingIdeaPage page = new TargetingIdeaPage();
    page = targetingIdeaService.get(selector);
    return new string[] { "value1", "value2" };
}

我基本上是从docs 中获取代码的。问题是未定义targetingIdeaService。如果我尝试查看code sample,它看起来像这样:

public void Run(AdWordsUser user, long? adGroupId) {
  using (TargetingIdeaService targetingIdeaService =
      (TargetingIdeaService) user.GetService(AdWordsService.v201802.TargetingIdeaService)) {
    // Create selector.
    TargetingIdeaSelector selector = new TargetingIdeaSelector();
    selector.requestType = RequestType.IDEAS;
    selector.ideaType = IdeaType.KEYWORD;
    selector.requestedAttributeTypes = new AttributeType[] {
      AttributeType.KEYWORD_TEXT,
      AttributeType.SEARCH_VOLUME,
      AttributeType.AVERAGE_CPC,
      AttributeType.COMPETITION,
      AttributeType.CATEGORY_PRODUCTS_AND_SERVICES
    };


    List<SearchParameter> searchParameters = new List<SearchParameter>();

    // Create related to query search parameter.
    RelatedToQuerySearchParameter relatedToQuerySearchParameter =
        new RelatedToQuerySearchParameter();
    relatedToQuerySearchParameter.queries = new String[] {
      "bakery", "pastries", "birthday cake"
    };
    searchParameters.Add(relatedToQuerySearchParameter);

还有更多代码。关键是他们在一个函数中创建了它,并将一个user 对象传递给它。现在我不会说对象。除非需要。然后我就完蛋了。但我需要启动并运行这项服务。这是唯一缺少的步骤,除了它应该可以工作。

所以我的问题是:有没有人想办法绕过它?

【问题讨论】:

  • 需要用户对象。

标签: c# asp.net rest api google-api


【解决方案1】:

AdWordsUser 对象包含连接到 API 所需的身份验证。没有它,您的应用将不知道向 TargetingIdeaService 提供哪个 AdWords 帐户和 OAuth 刷新令牌。

【讨论】:

  • 我可以在 ASP.NET 端创建AdWordsUser 吗?这是带有刷新令牌、访问令牌、客户端ID等的那个?
  • 您需要在 ASP.NET 应用程序中创建 AdWordsUser。
  • 是的。我试过了,并发布了另一个关于这个的问题。如果您有兴趣,还有更多信息here
猜你喜欢
  • 2014-11-21
  • 2021-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-08
  • 1970-01-01
  • 2011-04-06
相关资源
最近更新 更多