0

CRMアプリケーションを統合して、Yammer内部にアプリを作成し、YammerClientID、Client Secret、およびリダイレクトURLを使用して、Yammerユーザーをアプリに認証しています。

問題は、ユーザーがパスワードを変更するか、他のユーザーがアプリからログインしようとするたびに、許可を許可するかどうかを尋ねることです。アプリを使用して yammer にログインしているユーザーが自動的に許可する必要がある場合は、これは必要ありません。これに関して私を助けてください私は自分のコードも投稿しています

referalUrl = oauthUrl + clientId;
            oauthUrl =oauthUrl+ clientId + "&redirect_uri=" + redirUrl;      //For authentication to Yammer
            //referalUrl = oauthUrl + clientId;
            accessTokenUrl = accessTokenUrl + "client_id=" + clientId + "&client_secret=" + clientSecret + "&code=";
            string qsCode = string.Empty;
            string accessToken = "";
            string postResults = string.Empty;
            string response = string.Empty;
            string firstName = string.Empty;
            string lastName = string.Empty;
            //string currentUser = string.Empty;
            object yammerUserId = this.PrimaryDataRow[YammerUserTable.Field.YammerUserId];
            object currentUserId = this.SystemClient.UserProfile.EmployeeId;


        if (string.IsNullOrEmpty(accessToken))
        {
            while (string.IsNullOrEmpty(qsCode))
            {
                response = YammerAPIRequest.MakeGetRequest(oauthUrl, null, true);

                //look for authenticity token
                string authToken = YammerAPIRequest.GetAuthenticityToken(response);

                if (!string.IsNullOrEmpty(authToken))
                {
                    string f = System.Web.HttpUtility.UrlEncode(authToken);

                    userName = System.Web.HttpUtility.UrlEncode(userName);
                    //password = System.Web.HttpUtility.UrlEncode(password);
                    string postBody = "utf8=%E2%9C%93&authenticity_token=" + System.Web.HttpUtility.UrlEncode(authToken) + "&network_permalink=aptean.com&login=" +
                        userName + "&password=" + password + "&remember_me=on";

                    postResults = YammerAPIRequest.MakeLoginPostRequest(postBody, loginUrl, f, null, referalUrl);
                }
                qsCode = postResults;
                if (qsCode.IndexOf("code") == -1 && qsCode.IndexOf("redirect_uri")==-1)
                {
                    PivotalMessageBox.Show("Please enter Correct Username or Password");
                    return false;
                }
                else
                {
                    PivotalMessageBox.Show("You have Logged in to Yammer");
                    string postreq = "utf8=%E2%9C%93&authenticity_token=" + System.Web.HttpUtility.UrlEncode(authToken) + "&allow=Allow";
                    string allowurl="https://www.yammer.com/aptean.com/oauth2/decision?client_id=BAUC8GdiEZ5ximkabWM9Q&redirect_uri=https%3A%2F%2Fwww.yammer.com%2Faptean.com%2F&response_type=code";
                    string allow = YammerAPIRequest.AllowtoApp(postreq, allowurl, authToken, null, null);
                    if (allow != "")
                    {
                        qsCode = allow;
                    }
4

1 に答える 1