Getting an specific ProfileId from registered Accounts using GData .NET Analytics API 2.4

前端 未结 1 589
[愿得一人]
[愿得一人] 2021-01-24 16:45

In a past entry I figured out how to retrieve the metrics data for a certain profile id: Exception thrown when using GData .NET Analytics API

Now I would like to retriev

相关标签:
1条回答
  • 2021-01-24 17:22

    Using a suggestion posted here: http://code.google.com/p/gdata-issues/issues/detail?can=2&start=0&num=100&q=&colspec=API%20ID%20Type%20Status%20Priority%20Stars%20Summary&groupby=&sort=&id=2955 , I came up with this code works to accomplish what I need:

    Imports Google
    Imports Google.Analytics
    Imports Google.GData.Analytics
    Imports System.Collections.Generic
    Imports System.Collections
    
    Public Function GetProfileId(ByVal DomainText As String) As String
    
    Dim Ids As String = String.Empty
    Dim service As GData.Analytics.AnalyticsService = New GData.Analytics.AnalyticsService("MyAnalyticsService")
    service.setUserCredentials(username, pass)
    
    //Dim factory As GData.Client.GDataGAuthRequestFactory = CType(service.RequestFactory, GData.Client.GDataGAuthRequestFactory)
    //factory.AccountType = "GOOGLE" 
    //factory.UseSSL = True
    //service.RequestFactory = factory    
    
    Dim aF As DataFeed = service.Query(New DataQuery("https://www.googleapis.com/analytics/v2.4/management/accounts"))
    Dim webPropsUrl As String = "" 
    For Each o As GData.Client.AtomEntry In aF.Entries
         //webproperties
          If o.Title.Text.Contains(DomainText) Then
               webPropsUrl = o.Links.Item(1).HRef.Content
               Exit For
          End If
    Next
    
    Dim wpF As DataFeed = service.Query(New DataQuery(webPropsUrl))
    Dim profileFeedUrl As String = "" 
    For Each entry As DataEntry In wpF.Entries
        //profiles
         profileFeedUrl = entry.Links.Item(2).HRef.Content
         Exit For
    Next
    
    Dim prF As DataFeed = service.Query(New DataQuery(profileFeedUrl))
    Dim profileUrl As String = "" 
    For Each profd As DataEntry In prF.Entries
         profileUrl = profd.Links.Item(0).HRef.Content
         Exit For
    Next
    
    Dim profileId As String = ""
    profileId = profileUrl.Split("/")(profileUrl.Split("/").Length - 1)
    
    Return profileId
    
    End Function
    
    0 讨论(0)
提交回复
热议问题