ASP.Net VB Facebook SDK Post on User Wall or Any Page



Dim app_id As String = "654674765764"
            Dim app_secret As String = "dgfdgy465yfhy675"
            Dim scope As String = "publish_actions, manage_pages, publish_pages, public_profile"

        If Session("code") Is Nothing Then
            Response.Redirect(String.Format("https://graph.facebook.com/oauth/authorize?client_id={0}&redirect_uri={1}&scope={2}", app_id, Request.Url.AbsoluteUri, scope))
            Exit Sub
        End If
        Dim tokens As New Dictionary(Of String, String)()


        Dim url As String = String.Format("https://graph.facebook.com/oauth/access_token?client_id={0}&redirect_uri={1}&scope={2}&code={3}&client_secret={4}", app_id, Request.Url.AbsoluteUri, scope, Session("code").ToString(), app_secret)
        'Dim url = "https://graph.facebook.com/oauth/access_token?client_id=" & app_id & "&redirect_uri=" & Request.Url.AbsoluteUri.ToString & "&scope=" & scope & "&code={3}&client_secret=" & app_secret
        Dim request__1 As HttpWebRequest = TryCast(WebRequest.Create(url), HttpWebRequest)

            Using response As HttpWebResponse = TryCast(request__1.GetResponse(), HttpWebResponse)
                Dim reader As New StreamReader(response.GetResponseStream())

                Dim vals As String = reader.ReadToEnd()
                'Dim vals As String = "{'access_token':'our token value here','token_type':'bearer'}"
                Dim obj = JObject.Parse(vals)
            Dim access_token As String = DirectCast(obj("access_token").ToString, String)
            '' Now you have got user access token if you do anything onwards then it will be done as a user. To do like a page get  Page Access Token
            '            The last important Access Token Is used To manage Facebook Pages. It´s a bit more complicated To Get that Token, these are the required steps:
            'after getting a valid User Access Token with the additional permission “manage_pages”
            'make a call to /PAGE-ID?fields=access_token with the Facebook API
            'get Page Access Tokens for all your Facebook Pages in an Array


            Dim fbclient = New FacebookClient(access_token)
            Dim fbpage = "/135771030321215/feed"
            Dim fbpagefoto = "/135771030321215/photos"
            Dim msg = "Going Hi Tech. Test Post. From Monday this page will be run by BOTS. No Human intervention." & Now.ToString()
            Dim pic = Server.MapPath("./images/botpic/") & "muktinath.jpg"
            ''dim fbprofile = "/vinodkotiya/feed"
            fbclient.Post(fbpage, New With {
                             Key .message = msg
                                })

            'Dim imgstream = File.OpenRead(pic)

            'Dim res = fbclient.Post(fbpagefoto, New With {
            ' .message = msg,
            ' .file = New FacebookMediaStream() With {
            '  .ContentType = "image/jpg",
            '  .FileName = Path.GetFileName(pic)
            ' }.SetValue(imgstream)
            '})
            divMsg.InnerHtml = access_token
            End Using


Comments

Popular Posts