我正在尝试从位于远程主机上的 Microsoft Dynamics CRM 2011 Online 提取一些数据; 如果我手动(从浏览器)登录并从在 Linux 主机上运行 PHP 的服务器执行我的操作,它就可以工作,但是我当然想在没有我的中介的情况下进行身份验证和运行 CRUD 操作:)。
但它一直显示“对象已移至此处”。页面进行身份验证。 如果我设置 CURLOPT_FOLLOWLOCATION => 1,它会显示 crm 的登录页面。
如果有人可以提出解决问题的任何线索......谢谢!
<?php
$useragent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1";
$urlValue = "/LeadSet?$select=Address1_City,FirstName,LastName";
$username = "domain\user";
$pass = "pass";
$handle = curl_init();
curl_setopt_array($handle,
array (
CURLOPT_USERAGENT => $useragent,
CURLOPT_USERPWD => $username . ':' . $pass,
CURLOPT_HTTPAUTH => CURLAUTH_ANY,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_URL => 'https://myhost.com/xrmservices/2011/OrganizationData.svc',
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => $urlValue,
CURLOPT_RETURNTRANSFER => true,
)
);
$response = curl_exec($handle);
curl_close($handle);
header('Content-Type: text/plain;');
print_r($response);
最佳答案
我解决了通过 ntml 进行身份验证的问题,此代码显示了如何以 JSON 格式从 CRM 检索联系人。
$url='http://<server_adress>/organizationName/XRMServices/2011/OrganizationData.svc/ContactSet';
$ch = curl_init();
$headers = array(
'Method: GET',
'Connection: keep-alive',
'User-Agent: PHP-SOAP-CURL',
'Content-Type: application/json; charset=utf-8',
'Accept: application/json',
'Host <server network adress>');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_NTLM);
curl_setopt($ch, CURLOPT_USERPWD, '<user>:<password>');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
curl_close($ch);
//echo $response;
$array=json_decode($response, true);
$size=count($array['d']['results']);
echo "Numero de registos:".$size."<p>";
echo "Contactos:<p>";
for($i=0;$i<$size;$i++){
echo "Nome: ". $array['d']['results'][$i]['FullName']."<p>";
echo "Cidade: ". $array['d']['results'][$i]['Address1_City']."<p>";
echo "Emprego: ". $array['d']['results'][$i]['JobTitle']."<p>";
echo "Morada: ". $array['d']['results'][$i]['Address1_Name']."<p>";
echo "Telefone: ". $array['d']['results'][$i]['Address1_Telephone1']."<p>";
echo "Email: ". $array['d']['results'][$i]['EMailAddress1']."<p>";
echo "Pais: ". $array['d']['results'][$i]['Address1_Country']."<p>";
echo "Codigo-postal: ". $array['d']['results'][$i]['Address1_PostalCode']."<p>";
echo "Criado por: ". $array['d']['results'][$i]['CreatedBy']['Name']."<p>";
echo "...................................................................................<p>";
}
如果有人知道如何在 rest 端点进行 crud 操作,请告诉我。
关于PHP curl 与 Microsoft Dynamics CRM 2011 对话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10669377/
在thisvideofromGoGaRuCo2011,CoreyHaines展示了一些使Rails测试套件更快的技术。我总结如下:将尽可能多的代码放在Rails应用之外,放入其他模块和类中单独测试它们,无需加载Rails的开销在您的Rails应用程序中使用它们不过,有几件事我不明白。他交替使用rspec和spn或spna运行测试(例如,大约在3:50)。spn是一个众所周知的工具吗?在他对非Rails类和模块的测试中,他包含了被测试的模块或类,但我没有看到他包含任何类似spec_helper的东西。他如何获得Rspec? 最佳答案
简介:我们都知道在Android开发中,当我们的程序在与用户交互时,用户会得到一定的反馈,其中以对话框的形式的反馈还是比较常见的,接下来我们来介绍几种常见的对话框的基本使用。前置准备:(文章最后附有所有代码)我们首先先写一个简单的页面用于测试这几种Dialog(对话框)代码如下,比较简单,就不做解释了一、提示对话框(即最普通的对话框)首先我们给普通对话框的按钮设置一个点击事件,然后通过AlertDialog.Builder来构造一个对象,为什么不直接Dialog一个对象,是因为Dialog是一个基类,我们尽量要使用它的子类来进行实例化对象,在实例化对象的时候,需要将当前的上下文传过去,因为我这
我们最近改进了一个项目,希望将我们所有的旧数据带入新系统。问题在于架构略有不同,因此无法直接导入SQL。由于一些非规范化和数据库更改,我们需要在数据准备好导入之前对数据进行一些处理。我希望是这样的:OldUser.all.eachdo|ou|NewUser.create({:first_name=>ou.first_name:last_name=>ou.last_name:login=>ou.login:company_name=>ou.company.name})end在上面的示例中,OldUser正在从旧数据库读取数据,而NewUser正在处理新数据库。我需要两组模型(新的和旧的)
据我了解,与Rails不同,Sinatra框架不提供ORM。在那种情况下,您如何与Sinatra应用程序中的数据库对话?还是Sinatra仅适用于不使用数据库的应用程序? 最佳答案 如果您使用的是Sinatra,我不推荐DataMapper足够高。我有几个Rails应用程序,其中我坚持使用ActiveRecord,并且我一直在诅咒它的缺点和设计缺陷。如果您使用Sinatra,DataMapper是一个非常实用的选择。require"rubygems"require"sinatra"require"datamapper"DataMap
我正在使用jquery-ui,它的dialog功能可以在我的网络应用程序中显示模态对话框。它工作正常。在一个用例中,我在屏幕上有一个colorbox弹出窗口,一旦用户完成输入,我需要显示一个确认对话框。由于在我尝试过的所有主要浏览器上的错误处理,这里的一切实际上都有效,但我担心javascript引擎和浏览器的某些组合可能会导致什么问题。我得到的错误是调用堆栈大小溢出(Chrome将其显示为UncaughtRangeError:Maximumcallstacksizeexceeded.)。模态对话框的代码是:functionmodalDialog(dialogText,dialogTi
我正在尝试在sweetalert对话框中显示一个微调器,类似于Bootstrap模态对话框(http://jsfiddle.net/D6rD6/5/)我能想到的最接近的是这样的:SweetAlert.swal({title:'Importerrorsoccurred!',text:'',html:true,customClass:'manual-upload-errors-swal-width'});如果这不可能,那么最接近和最好的解决方案是什么? 最佳答案 原版sweetalert插件不支持,建议使用SweetAlert2插件。迁
我正在尝试在FB.ui(发送对话框)中执行回调函数。它在加载FB.ui时同时调用,但我想在按下“发送”或“取消”按钮后执行回调函数。可以实现吗?functioncallback(response){alert('messagewassent');}FB.ui({method:'send',name:'Dialog',link:'http://***.com',redirect_uri:'****',description:'***',picture:'***',to:userId},callback(response)); 最佳答案
我正在为CKEDITOR开发一个占位符插件,它基本上已经完成了。我遇到的问题是,我试图从对话框中的select获取值和description,但我只获取了值。包含描述和值的数组如下所示-->项目:[['description1','value1'],['description2','value2']]在return->contents->elementswithIDdropdown我有setup和提交功能。在这些函数中,我需要像从选择选项中获取名称一样获取描述。真的需要这方面的帮助,在此先感谢示例-->description1description2例子(function(){func
我正在使用Meteor和IronRouter,并且我有一个模态对话框,当它被关闭时不会隐藏背景。更准确地说,我希望在单击关闭按钮后,ironrouter将重定向到另一个页面。重定向代码确实有效,但背景仍然可见。如果我删除路由线-模式将被关闭,背景也将被关闭。这是模态框的标记:×Areyousure?Thiscannotbeundone.YesNo这是切换模态对话框的按钮:Delete这是确认模式对话框的"is"按钮上的点击事件:'click#confirm-yes-button':function(){Recipes.remove(this._id);$('#confirm
所以这可能是一个简单的修复,但我一直在研究但没有找到解决方案。我假设Electron默认这样做。在我的Electron应用程序中,我使用remoteapi从renderer进程调用对话框。一切正常,除了我的对话框不会阻止用户与BrowserWindow的其余部分进行交互。我的两个函数如下//functionforsavingaganttprojectprojectsareserializedintoaJSONfile//theJSONisthenstringifiedforhumanreadiblitythenthruthedialogapiissavedto//userscomput